2015-09-07 2 views
0

Мне интересно, есть ли способ посмотреть все $$ isolateBindings в моей директиве?Часы изоляционные обвязки как коллекция в AngularJS?

$scope.$watch('$$isolateBindings', function() { 
    console.log('watch me plse'); 
}); 

Теперь я делаю это так:

var isolateBindings = [] 

angular.forEach($scope.$$isolateBindings, function(item) { 
    isolateBindings.push(item.attrName) 
}); 



var watchIsValid = $scope.$watchGroup(isolateBindings, function() { 
    console.log('do somthing'); 
}); 
+1

Какова цель этого? большинство '$$' префиксных объектов, включая '$$ isolateBindings', предназначены только для внутреннего использования. вы пытаетесь каким-то образом изменить то, как ядро ​​угловых функций? Это определенно вопрос XY. – Claies

+0

Моя цель - сделать что-то, если введенное значение изменено. –

+0

Почему бы вам не посмотреть значение модели в этом случае? Или используйте ng-change? Это по-прежнему кажется очень неортодоксальным подходом, и непонятно, почему вы пытаетесь подойти к своей проблеме таким образом. – Claies

ответ

0

Я предполагаю, что это должно быть

var isolateBindings = Object.keys(scope.$$isolateBindings || {}); 
var watchIsValid = $scope.$watchGroup(isolateBindings, function() { 
    console.log('do somthing'); 
}); 

Эти свойства сферы применения, которые наблюдали, а не атрибуты.

Маловероятно, что есть еще один простой способ сделать это. Причины этого могут быть спорными, но этот подход достаточно хорош, чтобы не смотреть дальше.

Смежные вопросы