我想调用一个服务来发布数据,每次用户更改任何下拉值(组件中有几个下拉列表)或输入中的用户类型(例如:name)时,如下所示:
<input type="text" [ngModel]="clientName">
<select [(ngModel)]="selectTop">
<option *ngFor="let top of TypesTops" [value]="top.TypeTopId"> {{top.TypeTopName}}
</option>
</select>
在我使用ngDoCheck功能的组件中,所以每当一个值改变时,就会发生对服务的调用:
ngDoCheck(): void {
let filter = this.getFilter();
this.filterService.sendFilter(filter);
}
我还有一个输入需要触发相同的调用。这是一个正确的方法吗?在示例中使用ngDoCheck是否有任何挫折?
答案 0 :(得分:0)
不,在发送请求之前,您一定要检查ngDoCheck()
中的值是否实际发生了变化。
ngDoCheck()
,这可能很常见。
对于您的用例,我认为更好的方法是使用在选择更改时触发的事件
<select [(ngModel)]="selectTop" (ngModelChange)="selectChanged()">
selectChanged(): void {
let filter = this.getFilter();
this.filterService.sendFilter(filter);
}