首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何包装$digest()?

如何包装$digest()?
EN

Stack Overflow用户
提问于 2016-07-21 14:58:07
回答 1查看 86关注 0票数 2

我需要在我的Angular应用程序中测量$digest持续时间(性能监控)。

理想情况下,我希望在启动$digest()和之前花点时间,在它执行之后再花点时间。

我计划用我的代码包装$digest函数,就像这样(伪代码):

代码语言:javascript
复制
function $digest(){

  1. take timestamp
  2. call to original $digest()
  3. take timestamp
}

此包装对应用程序的其余部分应该是透明的,因此每个人只需在不了解此包装的情况下继续调用$scope.$digest()即可。我希望避免对angular.js进行任何修改

问:我如何才能做到这一点?使用Angular 1.3

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-21 15:16:00

您需要覆盖rootScope原型中的$digest。

代码语言:javascript
复制
angular.module('myModule', []).run(run);

function run($rootScope) {
    var scopeProto = Object.getPrototypeOf($rootScope);
    var originalDigest = scopeProto.$digest;
    scopeProto.$digest = function(){
        console.log("Hello from digest!");
        originalDigest.call(this);
    }
}

Fiddle (打开控制台查看结果)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38497093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档