Я пытаюсь выполнить простой angularJS-тест с помощью ввода [type = checkbox] и отобразить количество элементов, которые выбраны. В настоящее время, мое решение выглядит следующим образом:Почему 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 не обновляется вообще.
Может ли кто-нибудь объяснить, почему?
спасибо.
Это работает, но когда я пытался раньше сделать нг-изменения и нг-щелчок простой функции, которая делает только console.log ($ scope.items) журнал консоли был пуст , Может ли $ watchCollection разорвать обновление без выброса ошибки? – Blitz
Я не думаю, что так .. можете ли вы представить пример jsFiddle/Plunkr? – meriadec