2

我有下一个html:

<select  [(ngModel)]="district"  class="form-control" (change)="dsChange()">

      <option disabled hidden [value]="undefined" >Ноҳия</option>

      <option *ngFor="let dis of districts" [ngValue]="dis">{{dis.title}}</option>
</select>

我还有下一个组件

@Input() district: District;
 ngOnChanges(changes: SimpleChanges) {
      console.log("CHANGED")
}
 dsChange(){
      console.log(this.district);
}

而且我不明白为什么当我选择一些值时 dsChange 会以正确的区值触发,但 ngOnChanges() 不是

4

2 回答 2

5

ngOnChanges当组件的数据绑定输入属性更改时调用。在您的情况下,如果父组件为@Input() district.

查看文档

ngOnChanges()

当 Angular(重新)设置数据绑定输入属性时响应...在 ngOnInit() 之前以及一个或多个数据绑定输入属性更改时调用。

于 2017-06-24T16:32:03.763 回答
1

onChanges即使变量是组件的本地变量,它也没有调用。我为此创建了一个 plukr:

https://plnkr.co/edit/lsqyeZ8aiBpylciOQxnU?p=preview

于 2017-07-12T01:38:36.800 回答