在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;})();
3 回答
Cats萌萌
TA贡献1805条经验 获得超9个赞
这是我在检查范围结构的基础上放在一起的一个棘手的解决方案。它“似乎”起作用。我不确定这有多准确,它肯定取决于某些内部API。我正在使用angularjs 1.0.5。
$rootScope.countWatchers = function () {
var q = [$rootScope], watchers = 0, scope;
while (q.length > 0) {
scope = q.pop();
if (scope.$$watchers) {
watchers += scope.$$watchers.length;
}
if (scope.$$childHead) {
q.push(scope.$$childHead);
}
if (scope.$$nextSibling) {
q.push(scope.$$nextSibling);
}
}
window.console.log(watchers);
};
- 3 回答
- 0 关注
- 795 浏览
添加回答
举报
0/150
提交
取消