检查一个对象是否有属性

这个问题在这里已经有了答案:

  • 检查JavaScript对象中是否存在关键字? 16个答案

  • 您可以使用' hasOwnProperty '来检查对象是否具有特定属性。

    if($scope.test.hasOwnProperty('bye')){
      // do this   
    }else{
      // do this then
    }
    

    这里是jsFiddle的演示。

    希望这有帮助。


    if('bye' in $scope.test) {}
    else {}
    

    问题在于,当链接你的指令时,你可能会有价值 - 例如它可以通过$ http加载。

    我的建议是:

    controller: function($scope) {
      $scope.$watch('test.hello', function(nv){ 
         if (!nv) return; 
         // nv has the value of test.hello. You can do whatever you want and this code
         // would be called each time value of 'hello' change
      });
    }
    

    或者如果您知道该值只分配一个值:

    controller: function($scope) {
      var removeWatcher = $scope.$watch('test.hello', function(nv){ 
         if (!nv) return; 
         // nv has the value of test.hello. You can do whatever you want
         removeWatcher();
      });
    }
    

    这段代码将删除watcher'test.hello'的值被赋值(来自任何控制器,ajax等)

    链接地址: http://www.djcxy.com/p/26625.html

    上一篇: Check if an object has a property

    下一篇: JavaScript error handling async function passed to reduce