Рассмотрим этот Plnkr. Я не знаю, сколько членов fooCollection
будет создано заранее. Поэтому я не знаю, сколько моделей bar
будут существовать.
Но я знаю, что они будут angular моделями, и я знаю, где они будут.
Как мне сделать $watch
на них?
Мне нужно это сделать, потому что мне нужно вызвать поведение при изменении модели bar
. Просмотр самого fooCollection недостаточен, прослушиватель $watch
не срабатывает при изменении bar
.
Соответствующий html:
<body ng-controller="testCtrl">
<div ng-repeat="(fooKey, foo) in fooCollection">
Tell me your name: <input ng-model="foo.bar">
<br />
Hello, my name is {{ foo.bar }}
</div>
<button ng-click="fooCollection.push([])">Add a Namer</button>
</body>
Соответствующий JS:
angular
.module('testApp', [])
.controller('testCtrl', function ($scope) {
$scope.fooCollection = [];
$scope.$watch('fooCollection', function (oldValue, newValue) {
if (newValue != oldValue)
console.log(oldValue, newValue);
});
});