Как проверить, имеет ли объект определенное свойство в AngularJS?
Проверьте, обладает ли объект свойством
Ответ 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 и т.д.).