web-dev-qa-db-ja.com

Angular 2 ngfor最初、最後、インデックスループ

この例の最初の出現をデフォルトとして設定しようとしています: 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

なにが問題ですか??

50
PriNcee

これを確認してください plunkr

変数にバインドするときは、括弧を使用する必要があります。また、このようなテンプレート内の変数を宣言するためではなく、html内の要素への参照を取得する場合は、ハッシュタグを使用します。

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

Edit:Christopher Moore :ありがとう:Angularは以下のローカル変数を公開します:

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

Angular 6での実行方法は次のとおりです。

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

let first = firstからfirst as isFirstへの変更に注意してください

27