2015-09-07 46 views
0

我想知道是否有一种方法来观看我的指令中的所有$$ isolateBindings?在AngularJS中观看isolatebindings集合?

$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'); 
}); 

这些是观看范围特性,而不是属性。

这是不可能的,有另一种简单的方法来做到这一点。其原因可能是有争议的,但这种做法足以让人不敢再进一步观察。