为了账号安全,请及时绑定邮箱和手机立即绑定

如何计算页面上的手表总数?

如何计算页面上的手表总数?

倚天杖 2020-02-04 14:16:27
在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);

    };


查看完整回答
反对 回复 2020-02-04
  • 3 回答
  • 0 关注
  • 795 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信