在新版本的 Angular V17 中,该@if
指令可以用来替代ng-container
,这真是太棒了。不过,有时*ngIf
更简洁,比如判断是否显示按钮时:
<button *ngIf="loaded">OK</button>
Run Code Online (Sandbox Code Playgroud)
所以我想问一下,前景如何*ngIf
?*ngIf
Angular 会在未来的版本中完全放弃吗?
即使上面的代码看起来不像以前那么优雅,我们是否应该*ngIf
用now 替换所有实例?@if
@if(loaded){
<button>OK</button>
}
Run Code Online (Sandbox Code Playgroud) 我正在从 Angular 16 迁移到 17,遇到了需要用新语法替换*ngFor
and*ngIf
的所有用法的问题( and和ngSwitch
@for
@if
@switch
所有用法的问题。
我知道 v17 仍然支持旧语法,但有没有办法迁移它们或使用正则表达式将它们替换为新形式?
如何在Angular 17中定义index
变量@for
const users = [
{ id: 1, name: 'Ali' },
{ id: 2, name: 'reza' },
{ id: 3, name: 'jack' },
];
<ul>
@for (user of users; track user.id; let i = index) {
<li>{{ user.name + i }}</li>
} @empty {
<span>Empty list of users</span>
}
</ul>
Run Code Online (Sandbox Code Playgroud)
索引并不为我们所知,因为我们已经输入*ngFor
并得到了Unknown "let" parameter variable "index" in Angular17 @for
但以下内容有效:
<ul>
<li *ngFor="let user of users; let i = index">{{ user.name + i }}</li> …
Run Code Online (Sandbox Code Playgroud)