web-dev-qa-db-ja.com

すべてをループせずにAngular2テンプレートの配列の最後の要素を取得するにはどうすればよいですか?

この質問は、i、first、lastなどのループ変数にアクセスする方法ではなく、変数を取得してTEMPLATE VARIABLESとして設定する方法を尋ねています。


これは機能していません...

<div #lastElement="arr[arr.length-1]"></div>

だから私は実際にコンポーネントでローカル変数を作成し、それを直接バインドする必要がありますか?

過去にng- *ディレクティブを使用して実行できることはすべて、コンポーネントでハードコーディングする必要があると感じています...一種の劣化tbh

8
tom10271

テンプレート変数に任意の値を割り当てることはできません。テンプレート変数は、構造ディレクティブに使用される要素とディレクティブおよびローカルへの参照用です。

2

この例では、ブールキーワードlastを使用できます。

<div *ngFor="let item of items;let last = last;let first = first;let index = index">
first:{{first}}
index:{{index}}
last:{{last}}
</div>

結果:

first:true index:0 last:false
first:false index:1 last:false
first:false index:2 last:false
first:false index:3 last:true
9
vusan

テンプレートループでlastelement変数を設定します。 Angularは、ループの最後の要素を最後のディレクティブに自動的にバインドします。

<div *ngFor="#item of items; #lastElement = last">
   // Items go here
</div>

https://angular.io/docs/ts/latest/api/common/NgFor-directive.html

0
Joshua Szuslik