// #docregion import {Component} from 'angular2/core'; import {JSONP_PROVIDERS} from 'angular2/http'; import {Observable} from 'rxjs/Observable'; // #docregion import-observer import {Observer} from 'rxjs/Observer'; // #enddocregion import-observer import {WikipediaService} from './wikipedia.service'; @Component({ selector: 'my-wiki-smart', template: `

Smarter Wikipedia Demo

Fetches when typing stops

`, providers:[JSONP_PROVIDERS, WikipediaService] }) export class WikiSmartComponent { constructor (private _wikipediaService: WikipediaService) { } search: (value: string) => void; // #docregion observable-create private _searchTermStream: Observable = Observable.create( // #docregion subscribe-fn (observer:Observer) => this.search = (term) => observer.next(term) // #enddocregion subscribe-fn ); // #enddocregion observable-create // #docregion observable-operators items:Observable = this._searchTermStream .debounceTime(300) .distinctUntilChanged() .switchMap((term:string) => this._wikipediaService.search(term)); // #enddocregion observable-operators }