深入监视大型对象是性能杀手,因此watchExpression
,只要您调用更改特定对象或属性的操作,就可以将动态对象/属性传递给$ scope。$ watch函数的参数。
我也有很多不同的对象,不想为所有对象设置手表。
例如:
var watchingFunction = function (objectToBeWatched) {
$scope.$watch(function (objectToBeWatched) {return objectToBeWatched;}, function(newValue, oldValue) {
if (newValue !== oldValue) {...};
}, true);
$scope.object = true;
$scope.changeMyObject = watchingFunction(object);
的HTML
<input type="checkbox" ng-model="object" ng-change="changeMyObject()">
我相信这是行不通的,因为调用该功能watchingFunction()
只能运行$scope.$watch()
一次?好像您$scope.$watch
在$scope
(而不是包裹在)上定义的那样,watchingFUnction()
它一直在监视$ scope。$ watch的watchExpression
?
如果是这样的话,是否有任何创造性的事情可以做,返回从值watchExpression
这需要外部参数,而不是明确声明中的对象$scope.$watch
的watchExpression
?
谢谢一堆!
编辑更加清晰—每当当前作用域上的值发生更改时,我都会使用来将$scope.$watch
其创建$scope.$broadcast
到另一个作用域。
由于$scope.$watch
文档状态watchExpression
被多次调用(即使在一个摘要循环中也是如此),但是如果在那儿传递了对象,然后将该对象更改为另一个,则它将无法工作。这就是为什么最好传递字符串watchExpression的原因
$scope.$watch('object', function() {...} )
或更改对象内部的内容。
<input type="checkbox" ng-model="object.value" ng-change="changeMyObject()">
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句