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

时间:2016-02-04 22:50:11

标签: javascript angularjs

我有以下代码:

变量声明:

$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来触发undefined属性,因为它会导致视图在应用程序启动时改变3次。是否有可能等待变量声明?

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

1 个答案:

答案 0 :(得分:1)

只需检查手表功能中的未定义。

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