在我的 Angular 8 组件中,我向下拉控件添加了双向绑定。
风景
<select (ngModelChange)='termSelectChanged($event)' [ngModel]="selected">
<option [ngValue]="t" *ngFor='let t of termsColl'>{{t?.code}}</option>
</select>
组件代码
export class AppComponent implements OnInit{
public termsColl : Array<DDModel>;
public selected : DDModel;
constructor( private s : DDService ){}
termSelectChanged( event ){
alert('HIT');
}
ngOnInit(){
//service call #1
this.s.getDataForComplexBind().subscribe( data => {
this.termsColl = data;
}, error => error );
//service call #2
this.s.getOtherData( ).subscribe( data => {
//model changes here
this.selected = this.termsColl[1];
}, error => { console.error(error); });
}
}
Selected当组件加载时,它执行 ngOnInit() 并使用数组的第一个元素设置模型绑定属性termsColl。termsColl有数据,但该行this.selected = this.termsColl[1];不会将所选选项更改为下拉列表中的第一个元素。事实上,当组件加载时,我期望它触发事件ngModelChange,但它也没有触发事件。我在代码中添加了alert(),但在组件加载时它没有显示。仅当我从下拉列表中选择一个选项时它才会显示。ngModelChange如何更改代码以便在组件加载时执行该事件?
这是我的 stackblitz https://stackblitz.com/edit/angular-version-yeg27j?file=src%2Fapp%2Fapp.component.ts
Smart猫小萌
Qyouu
慕妹3146593
MM们
相关分类