У меня есть $watch, прослушивающий ввод, вызывающий службу для получения новых данных. Эти возвращенные данные также необходимы коллекции $watchCollection.
Как я могу уведомить $watchCollection о том, что произошло $watch (и, следовательно, область обновления)
Мой HTML
<div ng-controller="MainCtrl">
<p>A: <input type="text" ng-model="input"></p>
<p>B: <input type="text" ng-model="output"></p>
</div>
My JS
angular.module('testapp', [])
.controller('MainCtrl', ['$scope', function($scope) {
$scope.$watch('input', function(newVal, oldVal){
//go get some data from a service...
var reallyNewVal = Date.now();
$scope.input = reallyNewVal;
});
$scope.$watchCollection('[output]', function(output){
//watch this, plus some other stuff too, omitted for simplicity
$scope.output = $scope.input - 1391754634457;
});
}]);
Пример JSfiddle: http://jsfiddle.net/gC7Zr/
Я ищу, когда изменяется $scope.input (из-за $watch), $watchCollection также обновляется. Я не хочу помещать $scope.input в $watchCollection, так как он обрабатывает запрос XHR.
Любые идеи?
ИЗМЕНИТЬ:
Вот еще один пример того, что я пытаюсь сделать: http://jsfiddle.net/n46rj/
Когда вы меняете B, C обновляется. Однако, если вы измените A, C не обновится. Как я могу принудительно обновить $watchCollection ($digest?) при вызове $watch?