2015-12-02 13 views

risposta

48

mi piace la risposta di Eric meglio (vedere il suo commento per un Plunker del campione):

<span *ngFor="let item of items; let isLast=last"> 
    {{item}}{{isLast ? '' : ', '}} 
</span> 

La mia risposta iniziale era quello di utilizzare la opzionale index nella NgFor microsyntax:

<span *ngFor="#item of items, #i=index"> 
    {{item}}{{i === items.length - 1 ? '' : ', '}} 
</span> 

Un'alternativa è quella di usa solo la sintassi CSS ::before, come descritto qui: https://stackoverflow.com/a/31805688/215945

+4

In alternativa è possibile utilizzare la proprietà ['$ last'] (https://github.com/angular/angular/pull/3991). Ecco un [esempio] (http://plnkr.co/edit/padYDezuRCTvl05yO7QX?p=preview) –

+0

Grazie a @EricMartinez, non l'avevo ancora visto. Aggiornerò la mia risposta –

+2

Sintassi attuale: utilizzare let per * ngFor, ovviamente, ma anche per #isLast: '' – dae721

17

Penso che un approccio più semplice sia

<span> {{items.join(", ")}} </span> 
+2

Non capisco perché questo non è accettato come LA soluzione ... –

+0

nel caso in cui sia necessario circondare ogni stringa con un carattere, ad esempio le virgolette doppie, è possibile utilizzare: "" {{items.join ('","')}} "' – ShinDarth

+0

Non ha funzionato per me quando ho usato questa soluzione in combinazione con l'override del metodo toString() del mio oggetto personalizzato. Ma è davvero la soluzione più corta per i tipi primitivi. –