2016-12-03 2 views
0

Angular v1.5xAngular ng-Modell arbeitet nicht mit Kontrollkästchen für Anfangswert

Es gibt viele andere Fragen, die ähnlich klingen, aber keiner von ihnen mein Problem gelöst, so dass ich bin, diese zu versuchen, jemanden zu retten sonst Zeit.

funktioniert das nicht:

app.controller("Controller", function($scope) { 
    $scope.foo.bar = "true" 
} 

<input type="checkbox" ng-model="foo.bar" /> 

Die Zwei-Wege-Bindung tatsächlich arbeiten wird. Das Kontrollkästchen wird jedoch beim ersten Laden nicht überprüft.

Antwort

1

Das funktioniert:

app.controller("Controller", function($scope) { 
    $scope.foo.bar = true 
} 

<input type="checkbox" ng-model="foo.bar" /> 

Beachten Sie, dass in dieser Version ist der Wert von foo.bar ein boolean ist. Ich habe den harten Weg (nach Stunden der Frustration) gelernt, dass ng-model auf einem Kontrollkästchen nicht mit truthy Wert funktioniert.

Bonus-Tipp:

Dies ist in vielen anderen Fragen hingewiesen, aber es ist hier lohnt sich zu wiederholen. Angular verhält sich bekanntermaßen manchmal unvorhersehbar, wenn Sie direkt an Grundelemente statt an Eigenschaften binden. Übersetzung: Fügen Sie immer einen . in Ihre ng-model ein.

Gut: ng-model="foo.bar"

Bad: ng-model="foobar"

Verwandte Themen