#angular #angular8 #angular9 #angular10
Вопрос:
Я работаю над угловым приложением. У меня есть ngFor в моем html-коде, который выглядит следующим образом.
<span *ngFor="let data of myData">
<img src="assets/myImage.png">
<span>
{{data.title}}</span>,
</span>
Проблема в том, что массив myData может иметь одно или несколько значений во время выполнения. Я хочу, чтобы отображение было таким, чтобы при наличии одного значения отображалось только одно значение, но если присутствует более одного значения, они должны быть разделены запятой. В моем приведенном выше коде я просто поставил «,» после span. Он отлично работает с несколькими значениями, но в случае одного значения запятая все равно будет там. Как я могу это сделать?
Ответ №1:
вы можете использовать last
локальную переменную *ngFor
директивы https://angular.io/api/common/NgForOf#local-variables
<span *ngFor="let data of myData; last as isLast">
<img src="assets/myImage.png">
<span>{{data.title}}</span>
<ng-container *ngIf="!isLast">,</ng-container>
</span>
Комментарии:
1. Как каждый раз оставлять немного места после»,». Как будто присутствует больше элементов «,» и следующий элемент отображается очень близко друг к другу
2. с помощью css или
,amp;nbsp;
3. вы имеете в виду, что что-то напоминает этот <ng-контейнер *ngIf=»!isLast»>,<ng-контейнер *ngIf=»!isLast»></ng-контейнер>?
4. да,
amp;nbsp;
это экранированный html-код для символа пробела5. ваше решение сработало для меня. Просто вопрос. Есть ли какой — нибудь способ использовать div вместо span и разделять заголовок запятыми?