AngularJS $watch,等待变量声明触发

AngularJS $watch, wait variable declaration to trigger

本文关键字:声明 变量 等待 watch AngularJS      更新时间:2023-09-26

我有以下代码:

变量声明:

$scope.updateUploadView = 
{
  ready:{
    inview:false,
    text: "starting"
  },
  uploading:{
    inview:false,
    text: "uploading"
  },
  done:{
    inview:false,
    text: "done !"
  }
};

$watch :

angular.forEach($scope.updateUploadView, function(element, key) {
  $scope.$watch(function () {
    return element;
  }, function() {
   // do stuff
  });
},true);
});

这里的问题是我想忽略在未定义的属性上触发$watch,因为它会导致视图在应用程序启动时更改 3 次。是否有可能等待变量声明?

http://jsfiddle.net/A8Vgk/2200/

只需检查手表函数中的未定义。

$scope.$watch(function () {
  return element;
}, function(newValue, oldValue) {
  if(!angular.isDefined(newValue) && angular.isDefined(oldValue)) {
    // do stuff
  }
});