web-dev-qa-db-fra.com

Angular 2 ngpour la première, la dernière, la boucle d'index

J'essaie de définir par défaut la première occurrence dans cet exemple: plunkr

obtenir l'erreur suivante:

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

qu'est-ce qui ne va pas??

50
PriNcee

Découvrez ceci plunkr .

Lorsque vous vous liez à des variables, vous devez utiliser les crochets. En outre, vous utilisez le hashtag lorsque vous souhaitez obtenir des références à des éléments de votre code HTML, et non pour déclarer des variables à l'intérieur de modèles comme celui-ci.

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

Edit: Merci à Christopher Moore : Angular expose les variables locales suivantes:

  • index
  • first
  • last
  • even
  • odd
102
Steveadoo

Voici comment cela se fait dans Angular 6

<li *ngFor="let user of userObservable ; first as isFirst">
   <span *ngIf="isFirst">default</span>
</li>

Notez le passage de let first = first à first as isFirst

27