UNPKG

angular2

Version:

Angular 2 - a web framework for modern web apps

1 lines 5.79 kB
{"version":3,"sources":["async_pipe.js"],"names":[],"mappings":"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","file":"angular2/src/change_detection/pipes/async_pipe.js","sourcesContent":["import {Observable, ObservableWrapper} from 'angular2/src/facade/async';\nimport {isBlank, isPresent} from 'angular2/src/facade/lang';\nimport {Pipe, NO_CHANGE} from './pipe';\nimport {ChangeDetectorRef} from '../change_detector_ref';\n\n/**\n * Implements async bindings to Observable.\n *\n * # Example\n *\n * In this example we bind the description observable to the DOM. The async pipe will convert an observable to the\n * latest value it emitted. It will also request a change detection check when a new value is emitted.\n *\n * ```\n * @Component({\n * selector: \"task-cmp\",\n * changeDetection: ON_PUSH\n * })\n * @View({\n * inline: \"Task Description {{description|async}}\"\n * })\n * class Task {\n * description:Observable<string>;\n * }\n *\n * ```\n *\n * @exportedAs angular2/pipes\n */\nexport class AsyncPipe extends Pipe {\n _ref:ChangeDetectorRef;\n\n _latestValue:Object;\n _latestReturnedValue:Object;\n\n _subscription:Object;\n _observable:Observable;\n\n constructor(ref:ChangeDetectorRef) {\n super();\n this._ref = ref;\n this._latestValue = null;\n this._latestReturnedValue = null;\n this._subscription = null;\n this._observable = null;\n }\n\n supports(obs):boolean {\n return ObservableWrapper.isObservable(obs);\n }\n\n onDestroy():void {\n if (isPresent(this._subscription)) {\n this._dispose();\n };\n }\n\n transform(obs:Observable):any {\n if (isBlank(this._subscription)) {\n this._subscribe(obs);\n return null;\n }\n\n if (obs !== this._observable) {\n this._dispose();\n return this.transform(obs);\n }\n\n if (this._latestValue === this._latestReturnedValue) {\n return NO_CHANGE;\n } else {\n this._latestReturnedValue = this._latestValue;\n return this._latestValue;\n }\n }\n\n _subscribe(obs:Observable):void {\n this._observable = obs;\n this._subscription = ObservableWrapper.subscribe(obs,\n value => this._updateLatestValue(value),\n e => {throw e;}\n );\n }\n\n _dispose():void {\n ObservableWrapper.dispose(this._subscription);\n this._latestValue = null;\n this._latestReturnedValue = null;\n this._subscription = null;\n this._observable = null;\n }\n\n _updateLatestValue(value:Object) {\n this._latestValue = value;\n this._ref.requestCheck();\n }\n}\n\n/**\n * Provides a factory for [AsyncPipe].\n *\n * @exportedAs angular2/pipes\n */\nexport class AsyncPipeFactory {\n supports(obs):boolean {\n return ObservableWrapper.isObservable(obs);\n }\n\n create(cdRef):Pipe {\n return new AsyncPipe(cdRef);\n }\n}"]}