如何检查是否使用脏检查?

时间:2016-03-30 18:16:20

标签: javascript aurelia aurelia-binding

我的Aurelia应用程序中有一些复杂的屏幕,我想轻易检查一些绑定是否脏检查。我可以在我的所有属性getter中添加 console.log ,并检查它何时被调用,但这并不容易。

理想情况下,我想在控制台中获取每个绑定所使用的观察者策略,但我没有找到插入位置以添加此日志。

由于

1 个答案:

答案 0 :(得分:12)

您可以覆盖DirtyCheckProperty的订阅方法以添加日志记录:

import {DirtyCheckProperty} from 'aurelia-binding';
import * as LogManager from 'aurelia-logging';

const logger = LogManager.getLogger('my-app');

DirtyCheckProperty.prototype.standardSubscribe = DirtyCheckProperty.prototype.subscribe;
DirtyCheckProperty.prototype.subscribe = function(context, callable) {
  this.standardSubscribe(context, callable);

  logger.warn(`'${this.obj.constructor.name}.${this.propertyName}' is being dirty checked`, this.obj);
}

控制台中的消息如下所示:

console

这是一个正在运行的示例应用:

https://gist.run/?id=2c863d48a2a711b8c5f93df2bb7c4a3b