2015-11-18 4 views
12

Kann ich ng-readonly Direktive in einem Kontrollkästchen verwenden?ng-readonly funktioniert nicht in angular checkbox

Das Kontrollkästchen ist schreibbar, auch wenn es mit ng-readonly dekoriert ist.

Html:

<input type="checkbox" ng-model="model" ng-readonly="test" /> {{model}} 

Controller:

myApp.controller('MyCtrl', function($scope) { 
    $scope.test = true; 
}); 

Added Fiddle

+1

add ng-Modell Ihrem Eingabefeld –

+1

noch nicht ‚Arbeits –

+1

Aparently ng-Nur-Lese nicht ist Wenn Sie für Checkboxen arbeiten, können Sie [ng-disabled] (https://docs.angularjs.org/api/ng/directive/ngDisabled) verwenden. – AntiHeadshot

Antwort

24

, wenn Sie diese deaktivieren möchten es verwenden:

<input type="checkbox" ng-disabled="true" ng-model="test" /> 
6

ng-Nur-Lese-nur Arbeit mit input type = „text“

siehe Dokumentation hier - https://docs.angularjs.org/api/ng/directive/ngReadonly

Die HTML-Spezifikation nicht Browser benötigen, um die Werte von Booleschen Attributen wie Nur-Lese zu bewahren. (Ihre Anwesenheit bedeutet "wahr" und ihre Abwesenheit bedeutet "falsch".) Wenn wir einen angularen Interpolationsausdruck in ein solches Attribut einfügen, gehen die Bindungsinformationen verloren, wenn der Browser das Attribut entfernt. The ngReadonly directive solves this problem for the readonly attribute. Diese ergänzende Anweisung wird vom Browser nicht entfernt und stellt somit einen dauerhaft zuverlässigen Ort zum Speichern der Bindungsinformationen bereit.

+1

Die aktuelle Dokumentation 1.5.8 (auf die Ihr Link verweist) erwähnt diese Einschränkung nicht, aber sie ist tatsächlich effektiv. (doc Verbesserung benötigt?) – VasekCh

9

Wenn Sie ihn haben „mehr“ sichtbar, Sie immer ein wenig Javascript Trick verwenden:

<input type="checkbox" ng-model="model" onclick="return false;" /> 
+0

Viel besser und sauberere Lösung. – Aakash

Verwandte Themen