我很难理解如何在Angular components
之间提供数据。我已阅读@Input
和@Output
,但我不确定这是否是我需要使用的内容,如果是,请查看方式。
我有一个父component
(具有唯一assetId
的资产),其中嵌套(子)component
应列出与特定asset
相关的所有文档,基于assetId
。
如何将assetId
从asset component
传递到document
component
以用于获取特定记录所需的数据?
答案 0 :(得分:1)
模板解决方案:
<强> asset.component.ts 强>:
@Input() assetId: string;
asset
的用法:
<asset assetId="x"></asset>
<强> document.component.ts 强>:
@Input() assetId: string;
<强> asset.component.html 强>:
<document [assetId]="assetId"></document>
基本上它只是将assetId传递给驻留在document
模板中的asset
。
修改强>
仅限组件解决方案:
export class AssetComponent {
@ViewChild(DocumentComponent) document: DocumentComponent;
@Input() set assetId(assetId) {
this._assetId = assetId;
this.document.assetId = assetId;
}
get assetId() {
return this._assetId;
}
private _assetId: string;
}
在此,您可以通过DocumentComponent
选择ViewChild
并通过assetId
实例访问其document
媒体资源。确保assetId
中的DocumentComponent
为public
。