角组件交互双向绑定方法

时间:2018-11-02 11:11:56

标签: angular

我是Angular的新手,正在尝试了解各种可能性。

要实现Angular组件之间的双向交互以进行交互,我提出了以下可能性。使用选项5和6是否可行,因为angular documentation中没有提到它们。

  1. 事件绑定+通过子标记级别模板变量进行交互(仅允许从父模板访问子变量,而不能在组件中访问)
  2. 事件绑定+通过@ViewChild()进行交互(这允许从父组件访问子变量)
  3. 通过服务
  4. 事件绑定+属性绑定
  5. 香蕉语法方法(下面提到的代码)
  6. ngModel

     <childcomponent ([ipVar])="ParentVar">

1 个答案:

答案 0 :(得分:2)

在子组件中,您必须实现双向绑定接口,如下所示:

private _ipVar: any;
get ipVar(): any {
    return this._ipVar;
}
@Input()
set ipVar(value: any) {
    if(this._ipVar === value) {
        return;
    }
    this._ipVar = value;
    this.ipVarChange.emit(this._ipVar);
}
@Output()
ipVarChange = new EventEmitter<any>();

必须通过在@Output名称上添加单词Change来命名@Input。 因此,您可以像这样在父组件中使用它:

<childcomponent [(ipVar)]="ParentVar"></childcomponent>