javascript - Sammenkobling av strenger innenfor *ngfor Angular 2


Jeg vil gjerne slå sammen strenger på flere linjer innenfor *ngFor Angular 2-direktiv.

var contacts = [str1, str2, str3];

<div *ngFor="let c of contacts;let last = last; let str = str + c;">
    <div *ngIf="last">
         {{str}}
    </div>
</div>

Jeg vet at koden ovenfor ikke er gyldig. Men jeg vil vite om noe som det ovenfor er mulig å oppnå?

Forventet utdata bør være

Str1

Str2

Str3

Merk: Jeg vil oppnå noe liknende koden under i C# ved å bruke en Angular ngfor.

   var str = "";

   foreach(var item in items)
   {
     str = str + item.toString();
   }
   console.log(str);

Svar #1

Kanskje noe så enkelt som join vil være tilstrekkelig:

udetestet

var contacts = ['str1', 'str2', 'str3'];

<div [innerHtml]="contacts.join('')"></div>

Svar #2

oppdatering

*ngFor kan brukes til å beregne verdier avhengig av tidligere elementer. Den beste måten ville være å forberede listen i koden og deretter bare binde *ngFor til den resulterende listen.

original

Du kan ikke bruke vilkårlige uttrykk med let. Bare kontekstvariabler gitt av *ngFor kan tildeles.

På denne måten bør det gi de resultatene du ønsker

<div *ngFor="let c of contacts;let last = last">
    <div *ngIf="last">
         {{str}}{{c}}
    </div>
</div>

Relaterte artikler