2016-03-23 8 views
0

çalışmıyor benim kodudur: onay kutusu varsayılan olarak işaretli olabilir içinangularjs: onay kutusunu niteliğini kontrol İşte

<body ng-app="app"> 
<div ng-controller="TestController"> 
    <input type="checkbox" checked ng-repeat="num in array track by $index" ng-model="array[$index]" /> 
</div> 
<script type="text/javascript"> 
    var app = angular.module('app', []); 
    app.controller('TestController', function ($scope) { 
     $scope.array = [1, 2, 3, 4]; 
    }); 
</script> 

Özellikle, her <input> etikete checked niteliğini ekleyin. Ancak sonuç, dört onay kutusunun hiçbiri işaretli değil. Niye ya?

ng-checked="num" özniteliğini eklediğimde eklediğim işleri kontrol edebilir miyim, Ama yine de doğal denetlenen nesnelerin neden çalışmadığını merak ediyorum. Varsayılan olarak angular docs

itibaren

cevap

0

, ngModel referans değil, değer tarafından modelini izler. Eğer array[$index] derken

o tamsayı modeli adıdır değerini Ve verir onun yanlış

<div ng-controller="TestController"> 
    <input type="checkbox" checked ng-repeat="num in array track by $index" ng-model="array[$index].checked" title="{{array[$index].val}}" /> 
</div> 
<script type="text/javascript"> 
    var app = angular.module('app', []); 
    app.controller('TestController', function ($scope) { 
     $scope.array = [{val:1,checked:true},{val:2,checked:false},{val:3,checked:true},{val:4,checked:true},{val:5,checked:false}]; 
    }); 
</script> 
0

ng-model="array[$index]" dom

false özelliğini kontrol setleri bu şekilde Lütfen bunu
0

ng-modeliyle kontrol edilmemelidir. Aynı ng-modeli ile ng-kontrol için de geçerlidir. Her ikisi de, önceden kestirilemeyen davranışlara yol açan onay kutusu işaretli durumunu değiştirir.

Onay kutunuzun varsayılan olarak işaretlenmesini istiyorsanız, bunu ng modeli yönergesiyle yapın.

Kullandığınız yapı biraz garip görünüyor. Onay kutuları işaretli değildir, çünkü açısal değer bu değerle eşleşemez.

Varsayılan olarak, bir onay kutusunda ng-modelinin kullanılması, kullanıcı etkileşime girdiğinde ng-model değerinde doğru ve yanlış olur. Bunu ng-true-value ve ng-false-value kullanarak değiştirebilirsiniz. angular documentation’u kontrol edin.

bunu Bildiğim kadarıyla checked çalışmıyor neden olarak değeri 2.

0

ile başlar, çünkü o sırada ikinci bir başlangıçta seçilecektir sizin onay kutularına ng-gerçek değer = "2" diyelim eklerseniz : Açısal, ng-checked veya ng-model kullanarak onay kutusuna bağlandığında, checked özniteliğini, onay kutusu tarayıcıda doğru görünecek şekilde ayarlar - ilk bağlandığında checked özniteliğinin ne olduğuyla ilgilenmez.