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>
