好吧,这是我试图将模板传递nodeTemplate
给子组件的父组件ils-tree
<div class="nodes-panel">
<ils-tree layout="horizontal" [json]="nodes" [template]="nodeTemplate">
</ils-tree>
</div>
<ng-template #nodeTemplate>
<ng-template let-node pTemplate="default">
<p class="node-type">{{node.data.nodeType}}</p>
<p class="node-name">{{node.data.name}}</p>
</ng-template>
<ng-template let-node pTemplate="orgNode">
<p class="org-node-name">{{node.data.name}}</p>
</ng-template>
</ng-template>
子组件ils-tree
的 HTML 看起来是这样的
<p-tree
[value]="nodes"
[layout]="layout"
selectionMode="single"
[(selection)]="selectedNode"
[loading]="loading"
>
<ng-container *ngTemplateOutlet="template"></ng-container>
</p-tree>
并且控制器文件有
@Input()
template: TemplateRef<any>;
基本上,p
s 无处可见,是的,数据json
正在成功传递。帮助!
PS直接嵌入时的模板,在两者之间,有效。那是,
<p-tree
[value]="nodes"
[layout]="layout"
selectionMode="single"
[(selection)]="selectedNode"
[loading]="loading"
>
<ng-template let-node pTemplate="default">
<p class="node-type">{{node.data.nodeType}}</p>
<p class="node-name">{{node.data.name}}</p>
</ng-template>
<ng-template let-node pTemplate="orgNode">
<p class="org-node-name">{{node.data.name}}</p>
</ng-template>
</p-tree>