当值从select更改时,不会触发ngOnChanges

时间:2017-06-24 16:14:41

标签: angular angular2-template ngonchanges

我有下一个HTML:

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

我还有下一个组件

{$post->title|escape}

我无法理解为什么当我选择某个值时,dsChange会被触发正确的分区值,但是ngOnChanges()不是

2 个答案:

答案 0 :(得分:5)

当组件的数据绑定输入属性发生更改时,将调用

ngOnChanges。在您的情况下,如果父组件为@Input() district设置新值,则会调用它。

See the docs

  

ngOnChanges()

     

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

答案 1 :(得分:1)

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

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