fix(life_cycle): remove cyclic dependency

fixes #477

Closes #530
This commit is contained in:
Bertrand Laporte
2015-02-03 17:05:29 -08:00
committed by Misko Hevery
parent 5010cf9757
commit 63f23ec0b6
3 changed files with 40 additions and 8 deletions

View File

@ -2,17 +2,18 @@ import {FIELD, print} from 'angular2/src/facade/lang';
import {ChangeDetector} from 'angular2/change_detection';
import {VmTurnZone} from 'angular2/src/core/zone/vm_turn_zone';
import {ListWrapper} from 'angular2/src/facade/collection';
import {isPresent} from 'angular2/src/facade/lang';
export class LifeCycle {
_changeDetector:ChangeDetector;
_enforceNoNewChanges:boolean;
constructor(changeDetector:ChangeDetector, enforceNoNewChanges:boolean = false) {
this._changeDetector = changeDetector;
constructor(changeDetector:ChangeDetector = null, enforceNoNewChanges:boolean = false) {
this._changeDetector = changeDetector; // may be null when instantiated from application bootstrap
this._enforceNoNewChanges = enforceNoNewChanges;
}
registerWith(zone:VmTurnZone) {
registerWith(zone:VmTurnZone, changeDetector:ChangeDetector = null) {
// temporary error handler, we should inject one
var errorHandler = (exception, stackTrace) => {
var longStackTrace = ListWrapper.join(stackTrace, "\n\n-----async gap-----\n");
@ -20,6 +21,10 @@ export class LifeCycle {
throw exception;
};
if (isPresent(changeDetector)) {
this._changeDetector=changeDetector;
}
zone.initCallbacks({
onErrorHandler: errorHandler,
onTurnDone: () => this.tick()
@ -32,4 +37,4 @@ export class LifeCycle {
this._changeDetector.checkNoChanges();
}
}
}
}