在JavaScript中,有没有办法计算整个页面上有角度的手表的数量?
我们使用Batarang,但它并不总是适合我们的需求.我们的应用很大,我们有兴趣使用自动化测试来检查手表数量是否增加太多.
在每个控制器的基础上计算手表也是有用的.
编辑:这是我的尝试.它使用ng-scope来计算所有东西中的手表.
(function () {
var elts = document.getElementsByClassName('ng-scope');
var watches = [];
var visited_ids = {};
for (var i=0; i < elts.length; i++) {
var scope = angular.element(elts[i]).scope();
if (scope.$id in visited_ids)
continue;
visited_ids[scope.$id] = true;
watches.push.apply(watches, scope.$$watchers);
}
return watches.length;
})();
Run Code Online (Sandbox Code Playgroud) 我现在正在阅读很多关于AngularJS的内容,并且我遇到了神奇的$ watch功能.我理解如何使用它,但我想知道它是如何在后台实现的.它是时间间隔功能吗?或者是Angular在每次执行声明时都会调用此表吗?
我现在不想深入研究源代码,如果你们中的一个人已经知道答案并希望分享他对这个主题的了解,我会很高兴.
谢谢.
我读自创AngularJS和具有怎样的一个体面的理解$scopes,$watch和$digest工作.我了解当你添加自己的$watches并且打电话给自己时它是如何工作的$digests.但是,我对于默认情况下究竟发生了什么感到困惑.
$scope.$$watchers默认添加什么?你穿的一切$scope?你指定的所有东西ng-model?都?别的什么?
什么时候确实$digests被默认触发?输入字段更改?输入字段用ng-models?其他?