Angular 2 - ngFor - 局部变量 "first" 不起作用

Angular 2 - ngFor - local variable "first" does not work

我正在使用 ngFor 循环创建一个列表,其中包含用于移动对象的按钮。我试图首先和最后使用 ngFor 变量来禁用某些按钮。我发现 "first" 不起作用

<ul>
<li *ngFor="#hero of heroes; #i=index, #first=first, #last=last">
    <button class="btn btn-default btn-lg" [disabled]="first" (click)="moveToTop(hero, i)">Top</button>
    <button class="btn btn-default btn-lg" [disabled]="first" (click)="moveUp(hero, i)">Up</button>
    <button class="btn btn-default btn-lg" [disabled]="last" (click)="moveDown(hero, i)">Down</button>
    <button class="btn btn-default btn-lg" [disabled]="last" (click)="moveToBottom(hero, i)">Bottom</button>
</li>

我这里有一个工作示例Plunker preview

我这样做正确吗?我知道我可以做到

[disabled]="i==0"

但我认为 "first" 和 "last" 看起来更优雅。

现在你可以使用 [disabled]="i === 0" 因为局部变量 first 不存在,但是有一个 pull request 可以添加它,虽然还没有合并。

更新

上面的 pull request 参考它登陆了 beta.15,你可以看到更新日志 https://github.com/angular/angular/blob/master/CHANGELOG.md

这里还有一个plnkr with first working. You can see the documentation