Die Bindung von Optionsfeldern funktioniert nicht, wenn in AngularJS + Bootstrap ein Data-Toggle-Attribut hinzugefügt wird

8

Ich benutze AngularJS zusammen mit Twitter Bootstrap und ich möchte zwei Radio-Buttons wie normale Bootstrap-Buttons aussehen lassen. Ich fand dieses Beispiel auf jsFiddle, und nach der Anwendung auf meinen Fall sieht alles gut aus, aber es funktioniert nicht richtig.

Ich möchte die Optionsfelder an ein Modell in Angular binden. Hier ist mein Code:

%Vor%

Und hier ist das Ergebnis des Klickens auf die Schaltfläche "Nein" (Radio):

Also ist das Modell überhaupt nicht gebunden. Wenn ich das data-toggle-Attribut aus der Schaltflächengruppe entferne, funktioniert alles korrekt, aber die Optionsfelder werden wie oben auf den Bootstrap-Schaltflächen angezeigt:

Was muss ich tun, damit Bootstrap-Schaltflächen im ersten Bild wie diese aussehen und mit der AngularJS-Modellbindung wie diese im zweiten Bild korrekt funktionieren?

    
Yulian 06.10.2015, 09:31
quelle

3 Antworten

1

So habe ich es in einem früheren Projekt mit einer benutzerdefinierten Direktive zur Handhabung des Bereichs gemacht. Die Verwendung einer benutzerdefinierten Direktive mit einem isolieren Bereich auf diese Weise ist optional. Es sollte immer noch für Sie arbeiten mit ng-Controller - der Unterschied ist die Einrichtung der Radio-Buttons in der Steuerung nicht die HTML-Rendering dann mit ng-repeat . ( Arbeiten Plnrkr )

radius.html

%Vor%

radius.directive.js

%Vor%

Der Hauptteil von index.html

%Vor%     
br3w5 06.10.2015 12:32
quelle
1

Ich denke, Sie sind nicht der einzige, der über dieses Thema wütend ist. Derzeit habe ich das gleiche Problem.

Lassen Sie mich meine Problemumgehung zeigen:

%Vor%

Der Schlüsselpunkt zum Verständnis besteht darin, die data-toogle="Schaltflächen" zu entfernen, die zusätzliche JavaScript-Logik hinzufügen, die den Fehler verursacht. Und dann das Kontrollkästchen mit der Klasse ausblenden="ausblenden" in der gleichen Eingabe und setzen Sie den aktiven Zustand "manuell" entsprechend dem Wert Ihres Backing-Modell-Objekts.

Hoffe, das hilft!

    
Victor 13.05.2016 20:43
quelle
0

Codierung ist richtig. scheint, als hättest du keine richtige Angulerjs-Version benutzt. Welche Version verwendest du? Versuche es mit 1.3

    
Nir 06.10.2015 09:48
quelle