angular - 标签内容实现有什么区别?
问题描述
有我的方法来显示标签内容:
<mat-tab-group>
<mat-tab label="First">
<ng-template matTabContent>
The First Content
</ng-template>
</mat-tab>
</mat-tab-group>
这有什么区别
<mat-tab-group>
<mat-tab label="First">
<ng-template *ngIf="condition">
The First Content
</ng-template>
</mat-tab>
</mat-tab-group>
还有这个?
<mat-tab-group>
<mat-tab label="First">
<app-component *ngIf="condition"></app-component>
</mat-tab>
</mat-tab-group>
解决方案
A:
<app-component *ngIf="condition"></app-component>
如果condition
value 是真实的,那么上面的代码会加载app-component
.
乙:
<ng-template *ngIf="condition">
The First Content
</ng-template>
上面的代码不会渲染任何东西。这是因为<ng-template>
它是一个模板元素,从不直接显示。它仅在与结构指令一起使用时才有效。
在渲染之前,Angular 将上面的代码替换为:
<ng-template [ngIf]="condition">
<ng-template>
The First Content
</ng-template>
</ng-template>
这就是为什么即使condition
值是真实的,也不会显示任何内容的原因。<ng-template>
将被 Angular 的诊断注释替换,并且由于没有结构指令,因此不会显示任何内容。
推荐阅读
- sql - 在所有表中搜索字符串并按该字符串在一行中出现的次数排序(SQLite)
- javascript - 目前正在开发一个待办事项应用程序练习,但在保存和拉取 localStorage 逻辑方面陷入困境
- python - “不支持的操作数类型”错误消息
- javascript - 是否有可用于设置属性的可选链接的建议
- java - Java - 垂直直方图故障排除:最大值损坏?
- azure-data-factory - Azure 工厂 v2 通配符
- python - VS Code 无法打开 ipynb 文件
- laravel - 即使密码正确,Laravel Hash::check 也会返回 false
- android - 无效类型代码:19 在 Android Studio 中更改 JDK 版本时
- git - Git sparse-checkout 没有得到任何文件夹