2017-06-30 3 views
0

HTMLAngularJS Checkbox aktiviert ng-Änderung keine Aktion

<input type="checkbox" ng-model="activeStatus" 
     ng-checked="outlet2Datas.INT_EXTEND_1 == 1" 
     ng-change="setOutletStatus(activeStatus)" 
     ng-true-value="1" ng-false-value="0" /> 

-Controller

$scope.setOutletStatus = function (activeStatus) { 
     console.log(activeStatus); 
    } 

Ich bin für AngularJS, und ich brauche etwas Hilfe über Checkbox ng-Änderung.

Dies ist die Eingabe des HTML-Kontrollkästchens. Ich bekomme den Wert von API, um die Checkbox zu überprüfen, wenn der Wert 1 ist. Wenn der Checkbox-Wert von 1 beginnt, bedeutet das Kontrollkästchen aktiviert ist, klicke ich das Kontrollkästchen der Konsole nichts herauskommen. Und ich klicke erneut auf das Kontrollkästchen, die Konsole gibt den Wert 1 zurück und klickt erneut auf den Wert 0. Warum kann die ng-Änderung zum ersten Mal keine Aktion ausführen, wenn das Kontrollkästchen aktiviert ist, aber Aktionen ausführen kann, wenn das Kontrollkästchen deaktiviert ist?

Antwort

2

Siehe Angular documentation Sie sollten nicht ngModel mit ngChecked verwenden. Weil dies zu unerwartetem Verhalten führen kann. Scheint, dass das in deinem Fall passiert.

Sie können einfach true oder false der Variablen zuweisen, die Sie an ng-model Direktive übergeben. Oder ein beliebiger anderer Wert, der jedoch den angegebenen Werten in ng-true-value und ng-false-value entspricht.

Sie müssen Ihre Modellvariable auch nicht als Parameter an ng-change Callback übergeben. Weil Sie in Ihrer $scope bereits auf diese Variable zugreifen können.

Grundsätzlich bereite ich jsbin für Sie vor, mit funktionierendem Beispiel. Hoffe das hilft.

+0

Vielen Dank für Ihre Erklärung für meine Frage. Ich kann mein Problem mit deinem Beispiel lösen. Vielen Dank. –

Verwandte Themen