gpt4 book ai didi

使用 ng-content 的 Angular pass 模板引用

转载 作者:行者123 更新时间:2023-12-05 07:17:58 24 4
gpt4 key购买 nike

我想将 ng-template 作为 ng-content 嵌套在 child 中传递

应用组件.html

<app-parent>
<ng-template appTemplateRetrieval>
<div>this should be passed to grand child</div>
</ng-template>
</app-parent>

父组件.html

<app-child>
{{directivesTemplate}}
</app-child>

父组件.ts

 @ContentChild(TemplateRetrievalDirective, {static: false}) tplRetDir: TemplateRetrievalDirective;

get directivesTemplate(): TemplateRef<any> {
return this.tplRetDir && this.tplRetDir.template;
}

指令

export class TemplateRetrievalDirective {

constructor(public template: TemplateRef<any>) { }

}

子组件.ts

@ContentChild(TemplateRef, {static: true}) contentTpl: TemplateRef<any>;

ngAfterContentInit() {
console.log(this.contentTpl) // logs to console: undefined
}

堆栈 Blitz :https://stackblitz.com/edit/angular-cuipde

我希望 TemplateRef 向下传递两个级别:app-component > parent > child

最佳答案

如果您要将数据向上或向下传递到不止 1 个级别,我建议您查看服务并使用 subject 或 behaviorSubject 在多个组件之间传递数据。

关于使用 ng-content 的 Angular pass 模板引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58550240/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com