我不想html在每个*ngSwitchCase块中编写代码,而是想添加对 a 的引用ng-template
(来自 angular docs):
<div *ngIf="show; then thenBlock; else elseBlock">this is ignored</div>
<ng-template #primaryBlock>Primary text to show</ng-template>
Run Code Online (Sandbox Code Playgroud)
想要这样做:
<div [ngSwitch]="switchVar">
<div *ngSwitchCase="1; then myTemplate"></div>
<div *ngSwitchDefault>output2</div>
</div>
<ng-template #myTemplate>HTML TEXT</ng-template>
Run Code Online (Sandbox Code Playgroud)
而不是这个:
<div [ngSwitch]="switchVar">
<div *ngSwitchCase="1">HTML TEXT</div>
<div *ngSwitchDefault>output2</div>
</div>
Run Code Online (Sandbox Code Playgroud)
可以通过ngTemplateOutlet实现。第二个模板也展示了传递上下文的能力。
<div [ngSwitch]="switchVar">
<div *ngSwitchCase="1">
<ng-container *ngTemplateOutlet="tmplFirst"></ng-container>
</div>
<div *ngSwitchDefault>
<ng-container *ngTemplateOutlet="tmplSecondWithContext; context: {bar: 42}"></ng-container>
</div>
</div>
<ng-template #tmplFirst>HTML TEXT</ng-template>
<ng-template #tmplSecondWithContext let-foo="bar">Output: {{foo}}</ng-template>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3266 次 |
| 最近记录: |