是否有一种方式来获得绑定的总#(通过模板钩住{{ .. }}/ ng-xxx="...",$scope.$watch(...)等等),你的模块在任何时间点使用?
你应该可以使用一个粗略的想法document.getElementsByClassName("ng-binding").length.正如解释在这里,这个类应用到的元素{{ ... }}或ng-bind绑定,所以你可以使用绑定的号码或元素.它会错过任何未定义的方式.
所有表达式绑定都应该$parse用于解释表达式,因此如果您对临时度量感到满意,可以尝试在角度源代码中为此服务添加一些调试代码.创建绑定时应该很容易看到,但是当它被销毁时更难以看到.
看看当前的主人,看起来$parse会改变为1.2.0,这可能会让Chrome更容易.为此,您应该能够使用Chrome开发人员工具获取堆快照(来自"配置文件"选项卡),并使用Parser构造函数搜索所有对象.
您还可以使用类似的内容查看应用中的观察者数量
var watchersPerScope = $('.ng-scope').map(function() {
var s = $(this).scope();
if(s.$$destroyed) return 0;
return (s.$$watchers || 0) && s.$$watchers.length;
}).get();
var totalWatchers = 0;
for(var i=0; i<watchersPerScope.length; i++)
totalWatchers += watchersPerScope[i];
console.log(totalWatchers);
Run Code Online (Sandbox Code Playgroud)
我发现这些都不是你所要求的很好的解决方案,但它们至少是一些东西.最后一个建议是,如果出于性能原因这样做,Batarang for Chrome有一个非常好的性能部分.
在较新版本的angular(1.3.2+)中,您也可以使用
$rootScope.$countWatchers();
Run Code Online (Sandbox Code Playgroud)
如果您ngMock在页面中包含该模块.请参阅此处的文档.
| 归档时间: |
|
| 查看次数: |
2579 次 |
| 最近记录: |