lon*_*tly 8 html if-statement angular angular17
在新版本的 Angular V17 中,该@if指令可以用来替代ng-container,这真是太棒了。不过,有时*ngIf更简洁,比如判断是否显示按钮时:
<button *ngIf="loaded">OK</button>
Run Code Online (Sandbox Code Playgroud)
所以我想问一下,前景如何*ngIf?*ngIfAngular 会在未来的版本中完全放弃吗?
即使上面的代码看起来不像以前那么优雅,我们是否应该*ngIf用now 替换所有实例?@if
@if(loaded){
<button>OK</button>
}
Run Code Online (Sandbox Code Playgroud)
该概念在 Angular网站control_flow中被标记为开发者预览版,这意味着:
它们功能齐全且经过完善,但尚未准备好在正常的弃用政策下稳定下来。
此外,他们还有一种从旧模板语法迁移到 Angular v17 中引入的新模板语法的有效方法
现在让我们回到您的问题:
*ngIf我们应该用替换所有实例吗@if?我建议等待几个月,让 Angular 团队正式将此功能指定为稳定。一旦确认,您可以确保无需返工,尤其是当您正在从事大型项目时。
*ngIfAngular 会在未来的版本中完全放弃吗?虽然 Angular 团队还没有正式稳定下来
control_flow,但最终的答案仍然不确定。然而,就我个人而言,我会说不。即使他们将旧语法标记为已弃用,它仍然应该可用,因为采用这种格式的应用程序很流行。此外,无需担心从旧语法迁移到新语法,因为您可以通过运行以下命令轻松完成它。
ng g @angular/core:control-flow
Run Code Online (Sandbox Code Playgroud)
旁注:通过使用,@If您可以摆脱使用,ng-template这是一个非常棒的功能。看这个例子:
<div *ngIf="loggedIn; else anonymousUser">
The user is logged in
</div>
<ng-template #anonymousUser>
The user is not logged in
</ng-template>
Run Code Online (Sandbox Code Playgroud)
使用内置 if 语句,此条件将如下所示:
@if (loggedIn) {
The user is logged in
} @else {
The user is not logged in
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4926 次 |
| 最近记录: |