如何检查是否使用脏检查?
How to check if dirty checking is use?
我的 Aurelia 应用程序中有一些复杂的屏幕,我想轻松检查某些绑定是否脏检查。我可以在我所有的 属性 getter 中添加 console.log 并检查它何时被调用,但这并不容易。
理想情况下,我想在控制台中获取每个绑定使用的观察者策略,但我没有找到添加此日志的位置。
谢谢
您可以覆盖 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);
}
消息在控制台中看起来像这样:
这是一个 运行 示例应用程序:
我的 Aurelia 应用程序中有一些复杂的屏幕,我想轻松检查某些绑定是否脏检查。我可以在我所有的 属性 getter 中添加 console.log 并检查它何时被调用,但这并不容易。
理想情况下,我想在控制台中获取每个绑定使用的观察者策略,但我没有找到添加此日志的位置。
谢谢
您可以覆盖 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);
}
消息在控制台中看起来像这样:
这是一个 运行 示例应用程序: