Я использую angularJS 1.4.8, вчера я заметил, что $scope. $watch не срабатывает при каждом изменении, которое вызвало ошибку в моем приложении.
Есть ли способ заставить его немедленно работать над каждым изменением? как в этом коде, при каждом изменении сообщения я хочу, чтобы функция в секундах запускала:
(function(){
angular.module('myApp', [])
.controller('myAppController', myAppController)
function myAppController($scope){
console.log('controller loading !');
$scope.message = 'message1';
$scope.$watch('message', function(newMessage){
console.log('newMessage', newMessage)
});
function changeMessage(){
$scope.message='hi';
$scope.message='hi12';
}
changeMessage();
}
})();
консоль будет печатать:
controller loading !
newMessage hi22
plunker link https://plnkr.co/edit/SA1AcIVwr04uIUQFixAO?p=preview
изменить: Мне бы очень хотелось узнать, есть ли какие-либо другие способы, кроме переноса изменений с помощью тайм-аута и использования области применения, в моем исходном коде iv'e несколько мест, где я изменяю свойство scope, и я бы хотел избежать использования этих изменений.