angular2
Version:
Angular 2 - a web framework for modern web apps
1 lines • 4.82 kB
Source Map (JSON)
{"version":3,"sources":["life_cycle.js"],"names":[],"mappings":"AAAA;AAAA,KAAK,iBAAiB,AAAC,CAAC,MAAK,QAAQ;WAArC,EAAC,GAAE,YAAqB;AAAE,sBAAwB;IAAE,AAA9B,CAAC;AAAvB,WAAS,CAAT,EAAC,KAAI,CAAO,KAAG,AAAS,CAAC;CAAgC,CAAC;;;;;;EAAlD,WAAS,EAAjB,EAAC,qBAAoB,CAAA,OAAM,AAAC,eAAkB,CACtC,CAAA,sBAAqB,+BAA2B,CAAA,sBAAqB,GAAK,EAAC,OAAM,qBAAmB,CAAC,AAD/D,CACgE;EAAtG,eAAa,EADrB,EAAC,sCAAoB,CAAA,OAAM,AAAC,6BAAkB,CACtC,CAAA,uCAAqB,gDAA2B,CAAA,uCAAqB,GAAK,EAAC,OAAM,sCAAmB,CAAC,AAD/D,CACgE;EACtG,WAAS,EAFjB,EAAC,4DAAoB,CAAA,OAAM,AAAC,uCAAkB,CACtC,CAAA,6DAAqB,sEAA2B,CAAA,6DAAqB,GAAK,EAAC,OAAM,4DAAmB,CAAC,AAD/D,CACgE;EAEtG,iBAAe,EAHvB,EAAC,sDAAoB,CAAA,OAAM,AAAC,uCAAkB,CACtC,CAAA,uDAAqB,gEAA2B,CAAA,uDAAqB,GAAK,EAAC,OAAM,sDAAmB,CAAC,AAD/D,CACgE;EAGtG,UAAQ,EAJhB,EAAC,wCAAoB,CAAA,OAAM,AAAC,4BAAkB,CACtC,CAAA,yCAAqB,kDAA2B,CAAA,yCAAqB,GAAK,EAAC,OAAM,wCAAmB,CAAC,AAD/D,CACgE;AAD9G,AAAI,EAAA,YA+BG,SAAM,UAAQ,CAKP,gBAAe,AAA4F;IAAxE,eAAa,6CAAmB,KAAG;IAAG,oBAAkB,6CAAY,MAAI;AACrH,KAAG,cAAc,IAAI,SAAC,SAAQ,CAAG,CAAA,UAAS,CAAM;AAC9C,mBAAe,KAAK,AAAC,CAAC,SAAQ,CAAG,WAAS,CAAC,CAAC;AAC5C,QAAM,UAAQ,CAAC;EACjB,CAAA,CAAC;AACD,KAAG,gBAAgB,EAAI,eAAa,CAAC;AACrC,KAAG,qBAAqB,EAAI,oBAAkB,CAAC;AAiCnD,AA3EwC,CAAA;AAAxC,AAAC,eAAc,YAAY,CAAC,AAAC;AAgD3B,aAAW,CAAX,UAAa,IAAG,AAAiD;MAAnC,eAAa,6CAAmB,KAAG;;AAC/D,OAAI,SAAQ,AAAC,CAAC,cAAa,CAAC,CAAG;AAC7B,SAAG,gBAAgB,EAAE,eAAa,CAAC;IACrC;AAAA,AAEA,OAAG,cAAc,AAAC,CAAC;AACjB,mBAAa,CAAG,CAAA,IAAG,cAAc;AACjC,eAAS,GAAG,SAAC,AAAD;aAAM,CAAA,SAAQ,AAAC,EAAC;MAAA,CAAA;IAC9B,CAAC,CAAC;EACJ;AAYA,KAAG,CAAH,UAAK,AAAD,CAAG;AACL,OAAG,gBAAgB,cAAc,AAAC,EAAC,CAAC;AACpC,OAAI,IAAG,qBAAqB,CAAG;AAC7B,SAAG,gBAAgB,eAAe,AAAC,EAAC,CAAC;IACvC;AAAA,EACF;AAAA,KA1EmF;AAArF,KAAK,eAAe,AAAC,0BACb,EAAC,GAAE,CAAG,UAAS,AAAD,CAAG;AAAC,cA6BzB,WAAS,AAAC,EAAC,EA7BqC;EAAC,CAAC,CAAC,CAAC;AADrD,KAAK,eAAe,AAAC,yBACb,EAAC,GAAE,CAAG,UAAS,AAAD,CAAG;AAAC,YAmCK,gBAAe,IAAkB,cAAa,IApC7E,eAAc,KAAO,WAC4B;EAAC,CAAC,CAAC,CAAC;AADrD,KAAK,eAAe,AAAC,gDACb,EAAC,GAAE,CAAG,UAAS,AAAD,CAAG;AAAC,YA+CN,UAAS,IAAkB,cAAa,GA/CX;EAAC,CAAC,CAAC,CAAC;AA2ErD","file":"angular2/src/core/life_cycle/life_cycle.js","sourcesContent":["import {Injectable} from 'angular2/di';\nimport {ChangeDetector} from 'angular2/change_detection';\nimport {VmTurnZone} from 'angular2/src/core/zone/vm_turn_zone';\nimport {ExceptionHandler} from 'angular2/src/core/exception_handler';\nimport {isPresent} from 'angular2/src/facade/lang';\n\n/**\n * Provides access to explicitly trigger change detection in an application.\n *\n * By default, `Zone` triggers change detection in Angular on each virtual machine (VM) turn. When testing, or in some\n * limited application use cases, a developer can also trigger change detection with the `lifecycle.tick()` method.\n *\n * Each Angular application has a single `LifeCycle` instance.\n *\n * # Example\n *\n * This is a contrived example, since the bootstrap automatically runs inside of the `Zone`, which invokes\n * `lifecycle.tick()` on your behalf.\n *\n * ```javascript\n * bootstrap(MyApp).then((ref:ComponentRef) => {\n * var lifeCycle = ref.injector.get(LifeCycle);\n * var myApp = ref.instance;\n *\n * ref.doSomething();\n * lifecycle.tick();\n * });\n * ```\n * @exportedAs angular2/change_detection\n */\n@Injectable()\nexport class LifeCycle {\n _errorHandler;\n _changeDetector:ChangeDetector;\n _enforceNoNewChanges:boolean;\n\n constructor(exceptionHandler:ExceptionHandler, changeDetector:ChangeDetector = null, enforceNoNewChanges:boolean = false) {\n this._errorHandler = (exception, stackTrace) => {\n exceptionHandler.call(exception, stackTrace);\n throw exception;\n };\n this._changeDetector = changeDetector; // may be null when instantiated from application bootstrap\n this._enforceNoNewChanges = enforceNoNewChanges;\n }\n\n /**\n * @private\n */\n registerWith(zone:VmTurnZone, changeDetector:ChangeDetector = null) {\n if (isPresent(changeDetector)) {\n this._changeDetector=changeDetector;\n }\n\n zone.initCallbacks({\n onErrorHandler: this._errorHandler,\n onTurnDone: () => this.tick()\n });\n }\n\n /**\n * Invoke this method to explicitly process change detection and its side-effects.\n *\n * In development mode, `tick()` also performs a second change detection cycle to ensure that no further\n * changes are detected. If additional changes are picked up during this second cycle, bindings in the app have\n * side-effects that cannot be resolved in a single change detection pass. In this case, Angular throws an error,\n * since an Angular application can only have one change detection pass during which all change detection must\n * complete.\n *\n */\n tick() {\n this._changeDetector.detectChanges();\n if (this._enforceNoNewChanges) {\n this._changeDetector.checkNoChanges();\n }\n }\n}\n"]}