2016-03-30 18 views
6

Mam pewien złożony ekran w mojej aplikacji Aurelia i chciałbym sprawdzić łatwo, czy niektóre wiązania są brudne sprawdzone. Mogę dodać console.log we wszystkich moich getterach własności i sprawdzić, kiedy jest on wywoływany, ale nie jest to łatwe.Jak sprawdzić, czy używa się brudnej kontroli?

Idealnie chciałbym dostać w konsoli strategię obserwatora używaną przez każde wiązanie, ale nie znalazłem gdzie podłączyć, aby dodać ten dziennik.

Dzięki

Odpowiedz

10

Można zastąpić DirtyCheckProperty „s subskrybować metodę dodawania rejestrowania:

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

Komunikaty wyglądałoby to w konsoli:

console

Oto bieganie przykładowa aplikacja:

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

Powiązane problemy