【发布时间】:2018-10-25 07:02:54
【问题描述】:
我有 2 个组件,list component 和 details component。如何将对象从列表组件传递到详细信息组件?
我知道我必须使用@Input() 装饰器,但问题是details component 没有嵌套在list component 中。它完全靠自己。
【问题讨论】:
我有 2 个组件,list component 和 details component。如何将对象从列表组件传递到详细信息组件?
我知道我必须使用@Input() 装饰器,但问题是details component 没有嵌套在list component 中。它完全靠自己。
【问题讨论】:
您可以有一个父组件来包装两者并控制它们之间的通信,或者您可以使用一个共享服务来集中数据。
<parent>
<list [items]="items" (onSelectItem)="itemSelected()"></list>
<detail [item]="selectedItem"></list>
</parent>
Js
class ParentComponent {
items = [...],
selectedItem = null;
itemSelected(item){
this.selectedItem = item;
}
}
【讨论】:
最简单的方法是使用服务。看一看 https://angular.io/guide/component-interaction
【讨论】: