1
나는이 같은 선택 필드가 선택입니다 : 구성 요소에때 Angular2에 모델에 반영 변화가
<div *ngFor="let filter of filters; let idx = index">
<select [id]="'name' + idx" [(ngModel)]="filter.name" (change)="changeFilter(idx, $event)">
<option val="a">A</option>
<option val="b">B</option>
</select>
</div>
내 change()
기능이 즉시 변화를 감지하지 않습니다. 간체 :
@Component()
export class Filters {
public filters = [{name: "a"}, {name: "b"}, {name: "a"}];
public change(idx: number, $event: Event) {
console.log(this.filters[idx].name === $event.target.name); // false here
setTimeout(() => {
console.log(this.filters[idx].name === $event.target.name); // Now it's true
}, 10);
}
}
지금, 나는이 옵션 사이를 변경하는 경우, 변경() 함수는 약간의 시간이 필요 - 보통 미만 3이 setTimeout
에 밀리 초,하지만 때로는 더.
이제 이것이 이것이 변경 사항을 감지하는 가장 좋은 방법은 아니며 올바르게 수행하는 방법을 찾을 수 있지만 변경 사항이 언제 내 모델에 반영되었는지 확인하는 방법이 궁금합니다. ?
'ngModelChange'가 작동합니다. 전자 전체 모델 (지금 필터는 최상위 모델조차도 아니며, 다른 객체의 소품입니다.) – Zlatko