// #docregion import {Component} from 'angular2/core'; import {JSONP_PROVIDERS} from 'angular2/http'; import {Observable} from 'rxjs/Observable'; // #docregion import-subject import {Subject} from 'rxjs/Subject'; // #enddocregion import-subject 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) { } // #docregion subject private _searchTermStream = new Subject(); search(term:string) { this._searchTermStream.next(term); } // #enddocregion subject // #docregion observable-operators items:Observable = this._searchTermStream .debounceTime(300) .distinctUntilChanged() .switchMap((term:string) => this._wikipediaService.search(term)); // #enddocregion observable-operators }