입력 [type = checkbox]로 간단한 angularJS 테스트를 수행하고 선택된 항목 수를 표시하려고합니다. 현재, 내 솔루션은 다음과 같습니다NG 모델이 업데이트되지 않는 이유는 무엇입니까?
컨트롤러 :
$scope.items = [{
id: 1,
title: 'item1',
selected: true
},{
id: 2,
title: 'item2',
selected: false
},{
id: 3,
title: 'item3',
selected: false
},{
id: 4,
title: 'item4',
selected: false
}]
$scope.$watchCollection('items', function() {
var no = 0;
for(var i = 0; i < $scope.items.length; i++) {
if($scope.items[i].selected === true)
no++;
}
$scope.noSelectedItems = no;
}
보기 :
<div>Items ({{ noSelectedItems }})</div>
<div ng-repeat="item in items">
<input id="{{ item.id }}"
type="checkbox"
ng-model="item.selected"
ng-checked="item.selected" />
<label for="{{ item.id }}" >{{ item.title }}</label>
</div>
초기화 작동, 그래서 "항목 (1)"하지만 난 더 많은 항목을 선택하면 얻을 $ scope.items는 전혀 업데이트되지 않습니다.
이유를 설명 할 수 있습니까?
감사합니다.
이 작동하지만, 내가 NG-변화 할 이전하려고하는 경우에만 콘솔 로그가 비어 ($ scope.items)를 CONSOLE.LOG 않는 간단한 함수로 NG를 클릭 . $ watchCollection이 오류를 발생시키지 않고 업데이트를 중단 할 수 있습니까? – Blitz
나는 그렇게 생각하지 않는다 .. 당신은 이것에 대한 jsFiddle/Plunkr 예제를 제공 할 수 있습니까? – meriadec