将父组件值作为子组件中的param传递

时间:2017-05-11 15:19:08

标签: angular decorator

我通过"CreatedDate" timestamp with time zone DEFAULT now() 装饰器从父组件向子组件发送字符串name。然后将此字符串@Input作为参数提供给子组件中的函数。

因此每次触发父组件中的事件(例如单击)时,它会导致此name值发生更改,从而影响子组件中的函数(因为它需要{{1作为一个参数)。这是我孩子组件的一个片段:

name

我现在面临的问题是子视图保留了前一个函数调用的值。随后每次点击父项时,它只会添加新输出,当我希望它删除旧输出并用它替换新输出时。

更新:我找到了解决方案,但我不确定它是否正确。基本上,由于子函数返回一个对象数组,我只是在每个函数调用开始时清空数组。这似乎解决了这个问题。

1 个答案:

答案 0 :(得分:3)

ngOnInit只运行一次组件。请改用ngOnChanges。请参阅此处的文档:https://angular.io/docs/ts/latest/guide/lifecycle-hooks.html#!#onchanges

  

Angular会在检测到更改时调用其ngOnChanges()方法   输入组件(或指令)的属性。这个例子   监视OnChanges钩子。

ngOnChanges(changes: SimpleChanges) {
  for (let propName in changes) {
    let chng = changes[propName];
    let cur  = JSON.stringify(chng.currentValue);
    let prev = JSON.stringify(chng.previousValue);
    this.changeLog.push(`${propName}: currentValue = ${cur}, previousValue = ${prev}`);
  }
}