Angular $ watch应该如何处理数组

时间:2014-09-17 19:16:57

标签: angularjs sockets watch

很抱歉天真但是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);
  });
});

1 个答案:

答案 0 :(得分:2)

更改为使用watchCollection

  $scope.$watchCollection('errorList', function(newValues, oldValues){

  });

请参阅docs:https://docs.angularjs.org/api/ng/type/ $ rootScope.Scope