Angular 个包含数据的模板
Angular templates with data
父组件将 2 个模板和数据传递给子组件。在子组件中只显示没有数据的模板。如何显示传递给它的数据的模板?
父组件文件:
export class ParentComponent {
parentdata: string = 'String from parent with data';
constructor() { }
}
父html/template文件:
<app-child2
[templateHeader]="list"
[templateContent]="detail"
[datafromparent]="parentdata">
</app-child2>
<ng-template #detail>
Some data passed to it from outside
</ng-template>
<ng-template #list let-data="datafromparent">
{{data}}
</ng-template>
子组件是:是的,将删除 ts-ignore ;-)
export class Child2Component {
// @ts-ignore
@Input() templateHeader: TemplateRef<any> | null;
// @ts-ignore
@Input() templateContent: TemplateRef<any> | null;
@Input() datafromparent: string | undefined;
constructor() { }
}
子 html/template 文件是:
<div class="header-css-class">
<ng-container
*ngTemplateOutlet="templateHeader; context: { data: datafromparent }">
</ng-container>
</div>
<div class="content-css-class">
<ng-container
*ngTemplateOutlet="templateContent">
</ng-container>
</div>
我希望你能帮我解决这个问题,因为它对解决许多(通用)问题很有指导意义。
使用传递给模板的上下文中的数据项的名称(为清楚起见,我将名称从 data 更改为 datafromcontext):
// in the child template
<ng-container
*ngTemplateOutlet="templateHeader; context: { datafromcontext: datafromparent }">
</ng-container>
// in the parent template
<ng-template #list let-data="datafromcontext">
{{data}}
</ng-template>
父组件将 2 个模板和数据传递给子组件。在子组件中只显示没有数据的模板。如何显示传递给它的数据的模板?
父组件文件:
export class ParentComponent {
parentdata: string = 'String from parent with data';
constructor() { }
}
父html/template文件:
<app-child2
[templateHeader]="list"
[templateContent]="detail"
[datafromparent]="parentdata">
</app-child2>
<ng-template #detail>
Some data passed to it from outside
</ng-template>
<ng-template #list let-data="datafromparent">
{{data}}
</ng-template>
子组件是:是的,将删除 ts-ignore ;-)
export class Child2Component {
// @ts-ignore
@Input() templateHeader: TemplateRef<any> | null;
// @ts-ignore
@Input() templateContent: TemplateRef<any> | null;
@Input() datafromparent: string | undefined;
constructor() { }
}
子 html/template 文件是:
<div class="header-css-class">
<ng-container
*ngTemplateOutlet="templateHeader; context: { data: datafromparent }">
</ng-container>
</div>
<div class="content-css-class">
<ng-container
*ngTemplateOutlet="templateContent">
</ng-container>
</div>
我希望你能帮我解决这个问题,因为它对解决许多(通用)问题很有指导意义。
使用传递给模板的上下文中的数据项的名称(为清楚起见,我将名称从 data 更改为 datafromcontext):
// in the child template
<ng-container
*ngTemplateOutlet="templateHeader; context: { datafromcontext: datafromparent }">
</ng-container>
// in the parent template
<ng-template #list let-data="datafromcontext">
{{data}}
</ng-template>