Подтвердить что ты не робот

Проверьте, обладает ли объект свойством

Как проверить, имеет ли объект определенное свойство в AngularJS?

4b9b3361

Ответ 1

Вы можете использовать 'hasOwnProperty', чтобы проверить, имеет ли объект определенное свойство.

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

Вот демон jsFiddle

Надеюсь, что это поможет.

Ответ 2

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

Ответ 3

Проблема в том, что вы, вероятно, будете иметь значение не только при связывании своей директивы - ее можно загрузить, например, с помощью $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();
  });
}

Этот код удалит наблюдателя, которому было присвоено значение "test.hello" (от любого контроллера, ajax и т.д.).