typescript - Iterering i Angular 2 + Immutable.js (ved bruk av *ngFor)
Jeg bruker Angular 2 med Immutable JS, men jeg ser ut til å ikke få en enkel for-løkke til å fungere i malen min. Det er virkelig frustrerende. Jeg prøvde følgende gamle syntaks (basert på veiledninger)
<div *ngFor='#filter of filterArray' class='filter-row'>
<div class='row-title'>{{filter.get(title)}}</div>
</div>
og den nye syntaksen
<div *ngFor=' let filter of filterArray' class='filter-row'>
<div class='row-title'>{{filter.get(title)}}</div>
</div>
Jeg prøvde med og uten .get-syntaksen for de uforanderlige kartene innenfor krøllparentesene, og jeg får det bare ikke til å fungere..
filterArray ser ut som:
this.filterArray = fromJS([{
title: 'Brand',
},
{
title: 'Category'
},
{
title: 'Each UPC'
}]);
Er det en spesiell syntaks jeg må bruke for at dette skal fungere? Ingenting vises i nettleseren min, og jeg får ingen feil når jeg bruker let-syntaksen.
Versjoner :
"@angular/common": "^2.1.0",
"@angular/compiler": "^2.1.0",
"@angular/core": "^2.1.0",
"@angular/forms": "^2.1.0",
"@angular/http": "^2.1.0",
"@angular/platform-browser": "^2.1.0",
"@angular/platform-browser-dynamic": "^2.1.0",
"@angular/router": "^3.0.1",
"immutable": "^3.8.1",
"typescript": "2.0.2"
Rediger: følgende fungerer, men det ser dårlig ut
<div *ngFor='let filter of filterArray let i=index' class='filter-row'>
<div class='row-title'>{{filterArray.get(i).get('title')}}</div>
</div>
Svar #1
Dette fungerte for meg:
<div *ngFor='let filter of filterArray' class='filter-row'>
<div class='row-title'>{{filter.get('title')}}</div>
</div>
