入力ボックスの値の変更を識別し、古い値が新しい値と異なる場合はイベントを発生させる必要があります。以下の私のテンプレートやコンポーネントのコードです:同じコンポーネントの入力値の変化を特定する角度2
テンプレート:
<input [(ngModel)]="filters[i]" type="text" size="30" pInputText (keyup)="filterByField($event, col.field, fieldType.TEXT, 'keyup')"
(focusout)="filterByField($event, col.field, fieldType.TEXT, 'focusout')"
class="{{'input-'+col.field}}" />
コンポーネント:
filterByField(event, field, fieldType, eventType) {
if (fieldType === this.fieldType.DD) {
event.originalEvent.stopPropagation();
this.resetFilterBy(event.value.trim(), field);
this.loadData(null, true);
}
else if (fieldType === this.fieldType.TEXT) {
if (event.keyCode == 69 && field == this.fields.TASKID.field) {
this.filters[3] = '';
}
if (event.keyCode === 13) {
let filterValue = event.target.value;
this.resetFilterBy(filterValue.trim(), field);
this.loadData(null, true);
}
}
}
誰かがお勧めできます、どのように私は入力の変化を検出しないこと
[反応形式]を調べ、[(ngModel)]は使用しません。反応形式は、Angular.ioの公式文書に記載されています。そうでなければ[(ngModel)]を[value] = "filter [i]"や(change)= "filterChanged($ event、filter [i]、i)"のように置き換えてください。 – Picci