我正在使用Angular 8
我有一个canvas
元素必须显示在父组件内的不同子组件中,但其上的数据应该相同。
为了解决这种情况,我ng-content
在子组件中使用了
组件A和B具有 HTML 包含
<div class="child">
<ng-content select=["canvasPreview]"></ng-content>
</div>
而且ParentComponent有
<mat-horizontal-stepper labelPosition="bottom" #stepper (selectionChange)="onSelectionChange($event)">
<mat-step>
<ng-template matStepLabel>Upload Image</ng-template>
<app-upload-background-image
[(previewImage)]="previewImage"
(previewImageChange)="onPreviewImageChange($event)">
</app-upload-background-image>
</mat-step>
<mat-step>
<ng-template matStepLabel>Place Canvas A</ng-template>
<app-a>
<div canvasPreview *ngTemplateOutlet="canvas"></div>
</app-a>
</mat-step>
<mat-step>
<ng-template matStepLabel>Design Canvas B</ng-template>
<app-b>
<div canvasPreview *ngTemplateOutlet="canvas"></div>
</app-b>
</mat-step>
</mat-horizontal-stepper>
<ng-template #canvas>
<app-canvas-child></app-canvas-child>
</ng-template>
app-canvas-child组件具有canvas
元素
canvas-child.component.html
<div class="title">Canvas Success</div>
<canvas height="400" width="500">
但是在Parent组件中,它从组件显示Canvas Success标题app-canvas-child
,但画布区域是空白的。直接在父组件中使用相同(在 ng-template 之外)可以正常工作并显示画布。