UNPKG

angular2

Version:

Angular 2 - a web framework for modern web apps

1 lines 5.62 kB
{"version":3,"sources":["async_pipe.js"],"names":[],"mappings":"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","file":"angular2/src/change_detection/pipes/async_pipe.es6","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}"]}