2014-06-21 6 views
5

Ich versuche http://silviomoreto.github.io/bootstrap-select/ zu meiner AngularJS-Anwendung zu implementieren.Bootstrap-select mit AngularJS verwenden

Die meisten Leute, die versuchen und das gleiche tun, sie haben jedes Problem, das der selectpicker gesetzt wird, bevor Angular die Daten erhält. Aber für mich ist das nicht der Fall. Wenn Select Picker ausgelöst wird, enthält meine Auswahl alle Daten, aber aus irgendeinem Grund feuert das Dropdown-Umschalt-Ereignis nicht.

HTML:

<select id="partyRole" name="partyRole" class="form-control" ng-model="partyRole" ng-options="role as role.text for role in partyRoles"> 
    <option value="">Please Select...</option> 
</select> 

Die JS Anrufe fügt selectpicker allen meinen wählt.

JS:

$(window).bind("load", function() { 
    return $('select').selectpicker(); 
}); 

Ich verwende diese Richtlinie auch die selectpicker Daten zu binden:

https://github.com/joaoneto/angular-bootstrap-select/blob/master/build/angular-bootstrap-select.js

Finale UI

Final UI

Wie Sie sehen können, wird das div vom selectpicker erzeugt und ich bekomme auch alle Daten .. Aber das Klicken auf den Knopf tut nichts.

Ich habe Angular UI, Angular JS in der Anwendung mit Bootstrap Stylesheets.

EDIT:

Nevermind, die Version der Winkel Richtlinie I von Github heruntergeladen war wahrscheinlich in einem gebrochenen Zustand, denn nachdem ich es von den heutigen aktualisierten Code angewendet .. es funktionierte.

+1

Nevermind, die Version der Winkeldirektive, die ich von GitHub heruntergeladen habe, war wahrscheinlich in einem defekten Zustand, weil, nachdem ich es vom heutigen aktualisierten Code anwendete .. es funktionierte. – ArjaaAine

Antwort

2

Sie möchten in der Regel keine jQuery in einer Datei und AngularJS in einer anderen Datei haben. Wenn jQuery Elemente usw. erstellt, werden sie wahrscheinlich nicht von angular aufgenommen.

Die richtige Lösung ist die Verwendung einer Winkeldirektive. Hier sieht es wie somebody made one for you aus.

+1

Ich bin mir nicht sicher, ob Sie meine Post in vollen Zügen gesehen haben, aber ich benutze diese Anweisung bereits. Wenn ich hänge diese Richtlinie ohne zu verwenden "$ (window) .bind (" load ", Funktion() { zurück $ ('select'). Selectpicker(); });" Dann erhält keiner der Selects die neuen Stile. – ArjaaAine

+0

@ArjaaAine Ich weiß das ein alter Thread aber was hast du getan, um das zu beheben? – Josh

+1

aus dem op: "Nevermind, die Version der Winkel-Richtlinie, die ich von GitHub heruntergeladen habe, war wahrscheinlich in einem gebrochenen Zustand, weil, nachdem ich es aus dem heutigen aktualisierten Code angewendet .. es hat funktioniert." – Ven

1
function Selectpicker() { 
    return { 
     restrict: 'C', 
     link: function($scope, $element) { 
      $element.selectpicker(); 
     } 
    }; 
}