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

标签 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 在未定义的属性上触发,因为它会导致 View 在应用程序启动时更改 3 次。是否有可能等待变量声明?

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

最佳答案

只需检查 watch 函数中是否存在未定义即可。

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

关于javascript - AngularJS $watch,等待变量声明触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35213207/

相关文章:

angularjs - ionic html 数据从数据库绑定(bind)

javascript - 用于查找 <span> 标签中的属性的 Javascript 正则表达式是什么?

javascript - 透明HTML

javascript - AngularJS 不允许我加载另一个页面

angularjs Controller 执行两次

javascript - AngularJS 后退按钮默认打开到最后一个 ng-show

javascript - 带有src的DOM img节点而不加载图像

javascript - 如何使用 Javascript 以通用方式从多个 html 元素中获取值

javascript - jquery 有没有列出属性的函数?

angularjs - 如何在 Angular ui 网格中禁用编辑排序