0
這是我的第一個angualr項目。我正在更新元素點擊上的輸入值。當這個值改變時,我想觸發過濾管道。觸發管道的邏輯在一個指令中。這可能嗎?Angular 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');
}
}
}
這是好,而且不會當我添加管理面板來添加/刪除空位時會派上用場......但我現在想要實現的是啓動過濾器本身。當部門類元素被點擊時,它會更新#過濾器職業輸入的值。當值改變時,我想自動啓動部門的過濾。有什麼想法嗎? –
問題標題是關於管道。我認爲,而不是你的整個'click()'方法,你應該做'
這麼簡單!謝謝! –