很抱歉天真但是AngularJs的新手。
我有这个应用程序,服务器正在发送一个由frontEnd angular应用程序监听的套接字事件。 当套接字发送数据时,我将新数据推送到$ scope观看的数组。$ watch()。
但我看到"错误"正在被打印出来但没有"它再次发生了!!"。即使正在观看阵列。
请指导我,让我知道我在这里做错了什么?
app.controller('errorCtrl', function($scope, $timeout, socket){
$scope.errorList=[];
$scope.$watch('errorList', function(){
console.log('it Happened again !!');
});
socket.on('error', function(data){
$timeout(function(){
console.log('Error');
$scope.errorList.push(data);
},0);
console.log($scope.errorList);
});
});
答案 0 :(得分:2)
更改为使用watchCollection
$scope.$watchCollection('errorList', function(newValues, oldValues){
});
请参阅docs:https://docs.angularjs.org/api/ng/type/ $ rootScope.Scope