与对象

时间:2017-05-13 17:49:39

标签: angular data-binding

当您为子组件分配原始值(字符串,数字,布尔值)时创建父组件和子组件时,您必须使用eventemitter创建@Input和@Output以获得双向通信。到目前为止一切都很好。

但是当我仅使用@Input将复杂的Object分配给我的子组件时,我在Object中更改了一些值,那么我也会在Parent组件中看到这些更改。因为我正在编辑一个对象引用。

所以我的问题是,我应该避免在我的子组件中设置复杂对象,还是这是一种不好的做法?是否有任何可能性或者可以像“双向数据绑定”一样使用它。

1 个答案:

答案 0 :(得分:1)

使用relvant属性创建模型

export interface InputModel {
      a:string; 
      b:number;
      c:boolean;
}

创建此类型的@Input属性

@Input() obj : InputModel

通过这种方式对Input对象的任何属性进行任何更改。将触发ngOnChanges(),可用于处理您的操作