在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 關注
- 855 瀏覽
添加回答
舉報
0/150
提交
取消