首页 文章

Angular 2组件父对象与对象的通信

提问于
浏览
0

当您为子组件分配原始值(字符串,数字,布尔值)时创建父组件和子组件时,您必须使用eventemitter创建@Input和@Output以获得双向通信 . 到现在为止还挺好 .

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

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

1 回答

  • 1

    使用relvant属性创建模型

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

    创建此类型的@Input属性

    @Input() obj : InputModel
    

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

相关问题