export class RulesComponent {
items: Observable<Array<string>>;
term = new FormControl();
constructor(private searchService: SearchService) {}
ngOnInit() {
this.items = this.term.valueChanges
.debounceTime(400)
.distinctUntilChanged()
.switchMap(term => this.searchService.search('rules', term));
}
}
@Injectable()
export class SearchService {
constructor(private jsonp: Jsonp) {}
search(name: string, term: string) {
var search = new URLSearchParams();
search.set('search', term);
return this.jsonp
.get('http://127.0.0.1:8000' , { search })
.map(this.extractData)
.json();
}
}
term
値が変更される前にsearch()を呼び出して、ページが読み込まれている間に検索結果にitems
の値を設定しますが、わかりません。Angularjs2で最初に観測可能な値を設定する方法は?
に記載されている残念ながら、それは動作しません: 'エラー:キャッチされない(約束で):例外TypeError:this.term.nextがfunction.'ない – Marksman
申し訳ありませんが、私は同様の実装が、私のための「用語」を持っていますタイプは「Subject」です。基本的には、ngOnInitで検索をトリガする方法でtermを設定する必要があります。 – cDecker32
もう一度撮影できますか?私はそれを更新して、formcontrolオブジェクトと一緒に作業しなければならないようにしました。私がドキュメンテーションから集めることができたものを使ったことはありません。 – cDecker32