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>

Relaterte artikler