2016-03-30 5 views
6

Ich habe einige komplexe Bildschirm in meiner Aurelia App und ich würde gerne überprüfen, ob einige Bindungen sind schmutzig überprüft. Ich kann hinzufügen console.log in alle meine Eigenschaft Getter und überprüfen, wenn es heißt, aber es ist nicht einfach.Wie überprüft man, ob eine Dreckkontrolle verwendet wird?

Idealerweise möchte ich in die Konsole die von jeder Bindung verwendete Beobachtungsstrategie aufnehmen, aber ich habe nicht gefunden, wo ich stecken muss, um dieses Protokoll hinzuzufügen.

Dank

Antwort

10

Sie können DirtyCheckProperty außer Kraft setzen ‚s abonnieren Methode Protokollierung hinzuzufügen:

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); 
} 

Die Meldungen wie diese in der Konsole aussehen:

console

Hier ist ein Lauf Beispiel App:

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