0
これは私の最初のangualrプロジェクトです。要素クリックの入力値を更新しています。この値が変更されたときにフィルタリングパイプをトリガーしたいと思います。パイプをトリガーするロジックは命令にあります。これは可能ですか? defaulにより角度4 - プログラムによる値変更でパイプをトリガーする方法(キーボードイベントなし)
コンポーネント
<input id="filter-careers" placeholder="type your title here" type="text" [(ngModel)]="term" value="">
<div class="vacancy {{vacancy.department}}" *ngFor="let vacancy of vacancies | filter:term"
(click)="openModalContent(vacancy.description, vacancy.positionTitle, vacancy.department, vacancy.link)">
<p>{{vacancy.positionTitle }}</p>
</div>
二成分
<div class="department" *ngFor="let department of departments" appDepartmentsDirective [departmentName]="department.name" >
<div class="icon" [ngStyle]="{background: 'url(' + '../../assets/' + department.link + '.png' + ') center center no-repeat'}">
<img src="../../assets/{{department.link}}.svg" />
</div>
</div>
指令
import { Directive, HostListener, Input } from '@angular/core';
@Directive({
selector: '[appDepartmentsDirective]'
})
export class DepartmentsDirectiveDirective {
@Input() departmentName:string;
constructor() { }
@HostListener('click') click() {
console.log('department name: ' + this.departmentName);
if((<HTMLInputElement>document.getElementById('filter-careers'))){
console.log('do something here to trigger the filtering');
(<HTMLInputElement>document.getElementById('filter-careers')).value = this.departmentName;
(<HTMLInputElement>document.getElementById('filter-careers')).focus();
}
else{
console.log('do something else');
}
}
}
を変更し、
のようなパイプとあなたがパイプを再実行したいたびに追加のパラメータを渡すことです空きを追加/削除する管理パネルを追加すると便利です...しかし、私が今達成しようとしているのは、フィルタそのものを開始することです。部門クラス要素がクリックされると、#filter-career入力の値が更新されます。その値が変わると、私は部門のフィルタリングを自動的に開始したいと思います。何かご意見は? –
質問タイトルはパイプについてです。私はあなたの 'click()'メソッドの代わりに '
とても簡単です!!ありがとうございました! –