首页 文章

从子节点更新父节点的@Input属性

提问于
浏览
0

我想要更新子进程的@Input属性,并使更改对父进行生效 .

家长TS(文件详情):

export class DocumentDetailsComponent implements OnInit {
  view: string = 'editor';
}

父HTML(文档详细信息):

<document-content [(view)]="view" ></document-content>

儿童TS(文件内容):

export class DocumentContentComponent implements OnInit, OnChanges {

  @Input() view: string;

  ngOnChanges(changes: SimpleChanges) {
    if (changes.version) {
      this.view = 'editor';
    } 
  }
}

当子组件内的视图属性设置为“编辑器”时,它似乎不会反映父组件内的这些更改 .

我知道我可以使用@Ouput事件 Launcher ,但我觉得这应该可以正常工作 .

1 回答

  • 0

    当angular bootstraps它构建一个组件树 .
    Component

    组件具有输入和输出属性,可以在组件装饰器中定义或使用属性装饰器定义 .

    数据通过 @input 属性(Parent to child)流入组件 . 数据通过 @output (子级到父级)属性从组件流出 .

    使用 @input 属性数据沿树向下流动 . 它不会向上流动 .

    如果您希望数据流向相反方向,即向上,您需要使用 @Output 装饰器和事件 Launcher .

相关问题