在新版本的 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 16 迁移到 17,遇到了需要用新语法替换*ngForand*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)