I以下の入力を持っている:角度:観察可能なベースのマルチフィルタリング
<form *ngIf="tests.length">
<md-form-field class="whitePlaceholder" floatPlaceholder="never">
<input mdInput placeholder="Find Tests..." [formControl]="testCtrl"
class="whitePlaceholder">
</md-form-field>
</form>
入力は、リスト内の名前によるフィルタリングテストに責任がある:
<md-list-item *ngFor="let test of filteredTests | async">
</md-list-item>
は、私は、次のコードを実行するとI
this.filteredTests = this.testCtrl.valueChanges
.startWith(null)
.debounceTime(250)
.map(name => name ? this.filterTests(name) : tests.slice());
それは素晴らしい作品が、今、私は別のフィルタを追加しました:私のAPIからテストをロードし終えるたちラジオボタンからオプションを選択できます。これはチェックし、ボタンによるフィルタリングの責任方法です:
updateList($event) {
if ($event.value === 'all') {
this.filteredTests = Observable.of(this.tests);
} else {
this.filteredTests = this.filteredTests
.map((test) => test ? this.filterTestsStatus($event.value) : this.filteredTests.slice());
}
}
問題:ユーザーは選択肢の一つでフィルタする]ラジオボタンをクリックすると、filteredTests
変数が上書きされ、テスト名の検索入力が言及されています上記は機能しなくなります。
質問:filteredTests
を上書きするのではなく、自分の名前フィルタとラジオオプションフィルタでアプリケーションを動作させる方法を教えてください。