2015-11-18 19 views
12

Posso usare la direttiva ng-readonly in una casella?ng-readonly non funziona nella casella di controllo angolare

La casella di controllo è scrivibile anche dopo che è decorata con ng-readonly.

Html:

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

Controller:

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

Aggiunto Fiddle

+1

aggiungere al vostro campo di input –

+1

ancora non funziona' –

+1

Aparently ng-in sola lettura non è lavorando per le caselle di controllo, è possibile utilizzare [ng-disabled] (https://docs.angularjs.org/api/ng/directive/ngDisabled) – AntiHeadshot

risposta

24

se si desidera disabilitarlo utilizzare questo:

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

ng-in sola lettura solo il lavoro con input type = "text"

si veda la documentazione qui - https://docs.angularjs.org/api/ng/directive/ngReadonly

La specifica HTML non richiede browser di preservare i valori degli attributi booleani come sola lettura. (La loro presenza significa vero e la loro assenza significa falso). Se inseriamo un'espressione di interpolazione Angolare in un tale attributo, le informazioni di vincolo andrebbero perse quando il browser rimuove l'attributo. The ngReadonly directive solves this problem for the readonly attribute. Questa direttiva complementare non viene rimossa dal browser e pertanto fornisce un luogo affidabile e permanente per memorizzare le informazioni di rilegatura.

+1

La documentazione corrente 1.5.8 (a cui punta il tuo link) non menziona tale vincolo, ma è effettivamente efficace. (necessario un miglioramento dei documenti?) – VasekCh

9

Se si desidera avere "più" visibile, si può sempre usare un piccolo trucco javascript: ng-model

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

Soluzione molto migliore e più pulita. – Aakash

Problemi correlati