当再次更新相同的值时,ngOnChanges不会触发

时间:2017-02-20 09:25:41

标签: angular typescript

我的appComponent.ts中有一个属性:

this._userMessage

然后通过以下方式将其发送到childComponent:

<child-component [p_sUserMessage]='_userMessage'></child-component>

在childComponent.ts中:

@Input() p_sUserMessage: string = '';
ngOnChanges(): void {
 console.log(this.p_sUserMessage);
}

现在我面临的问题是:

  • 如果我发送'hi'ngOnChanges被解雇。
  • 现在,如果'hi'再次发送,则不会触发ngOnChanges。

1 个答案:

答案 0 :(得分:0)

我使用以下解决方案

this._userMessage=3;
   setTimeout((() => {
    this._userMessage = null; 
   }).bind(this), 300);


<child-component [p_sUserMessage]='_userMessage'></child-component>


@Input() p_sUserMessage: string = '';
 ngOnChanges(changes: SimpleChanges): void {
  if (changes["p_sUserMessage"]!=undefined) 
  {
     if (changes["p_sUserMessage"].currentValue!=null)
     {
     console.log(changes["p_sUserMessage"].currentValue);
     }
  }
}

如果我再次分配this._userMessage = 3,那么ngOnChanges将再次完成