Angular 2 ng for first,last,index loop


86

我正在尝试将本例中的第一次出现设置为默认值:plunkr

出现以下错误:

    Unhandled Promise rejection: Template parse errors:
    TypeError: Cannot read property 'toUpperCase' of undefined ("dButtonToggleGroup">
    <md-button-toggle [ERROR ->]*ngFor="let indicador of indicadores; #first = first" value="indicador.id" [checked]="first">"): ng:///AppModule/HomeComponent.html@35:78
    Parser Error: Unexpected token #, expected identifier, keyword, or string at column 31 in [let indicador of indicadores; #first = first] in ng:///AppModule/HomeComponent.html@35:78 ("<md-button-toggle *ngFor="let indicador of indicadores; #first = first" value="indicador.id" [ERROR ->][checked]="first">
    <span>{{ indicado"): ng:///AppModule/HomeComponent.html@35:153

怎么了??

Answers:


175

看看这个笨蛋

绑定变量时,需要使用方括号。另外,当您要获取对html中元素的引用时,可以使用井号标签,而不是在这样的模板内部声明变量。

<md-button-toggle *ngFor="let indicador of indicadores; let first = first;" [value]="indicador.id" [checked]="first"> 
...

编辑: 感谢Christopher Moore:Angular公开了以下局部变量:

  • index
  • first
  • last
  • even
  • odd

谢谢!这对我有很大帮助,但是我尝试使用第一个,因为在搜索它时,我发现了一些示例,例如:blog.angular-university.io/angular-2-ngfor(标识列表的第一个和最后一个元素)
PriNcee

喔好吧。您也可以这样做。代替let i = index,只需将其更改为,let first = first;然后将[checked]绑定更改为仅检查“ first”而不是“ i == 0”。
Steveadoo '17

真好!现在正在工作!但我根本不明白为什么我必须将选中的属性用方括号绑定
PriNcee

29
@Steveadoo在ngFor角公开以下局部变量indexfirstlastevenodd。您能否更新答案以为将来的用户澄清这一点?
克里斯托弗·摩尔

2
代替let first = first您可以first as isFirst按此处所述编写(isFirst是自定义变量):angular.io/api/common/NgForOf#local-variables
jurl


0

通过这种方式,您可以*ngFor在ANGULAR中获得任何循环索引...

<ul>
  <li *ngFor="let object of myArray; let i = index; let first = first ;let last = last;">
    <div *ngIf="first">
       // write your code...
    </div>

    <div *ngIf="last">
       // write your code...
    </div>
  </li>
</ul>

我们可以在其中使用这些别名 *ngFor

  • indexnumberlet i = index获取对象的所有指标。
  • firstbooleanlet first = first获取对象的第一个索引。
  • lastbooleanlet last = last获取对象的最后一个索引。
  • oddbooleanlet odd = odd获取对象的索引为奇数。
  • evenbooleanlet even = even获取对象的索引为偶数。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.