Ссылка на https://angular.io/docs/ts/latest/guide/displaying-data.html и стек. Как проверить пустой объект в шаблоне angular 2 с помощью * ngIf, все еще получающего синтаксическую ошибку, сам контекст undefined. Если я удалю условие * ngIf, тогда я получу значения в teamMembers, если я вставлю в него какое-то значение, чтобы я мог получить доступ к значениям в teamMembers.
Мой teamMember
объект - [ ] array
я пытаюсь проверить, что массив условий пуст по размеру.
Пытается :
<div class="row" *ngIf="(teamMembers | json) != '{}'">
а также
<div class="row" *ngIf="teamMembers.length > 0"> //Check length great than
throwing syntax error
<div class="col-md-12">
<h4>Team Members</h4>
<ul class="avatar" *ngFor="let member of teamMembers">
<li><a href=""><gravatar-image [size]="80" [email]="member.email"></gravatar-image></a></li>
</ul>
</div>
</div>
Составная часть :
@Component({
selector: 'pbi-editor',
})
export class AppComponent implements OnInit {
teamMembers: User[];
Любая помощь была бы замечательной.
angular
angular2-template
Картигеян Велласами
источник
источник
Ответы:
<div class="row" *ngIf="teamMembers?.length > 0">
Это проверка первая , если
teamMembers
имеет значение , и еслиteamMembers
не имеет значения, он не пытается получить доступlength
в ,undefined
потому что первая часть условия уже не удается.источник
safe navigation operator
: angular.io/guide/template-syntax#safe-navigation-operatorВы можете использовать
*ngIf="teamMembers != 0"
для проверки наличия данныхисточник
Может быть, небольшой перебор, но созданная библиотека ngx-if-empty-or-has-items проверяет, не пуст ли объект, набор, карта или массив. Может, это кому-нибудь поможет. Он имеет ту же функциональность, что и ngIf (тогда поддерживается синтаксис else и as).
источник
Ты можешь использовать
Без
event.attendees?.length > 0
или дажеevent.attendees?length != 0
Потому что
?.length
уже возвращаем логическое значение.Если в массиве будет что-то, оно не будет отображаться.
источник
Эта статья очень помогла мне понять, почему и у меня она не работает. Это дало мне урок думать о загрузке веб-страницы и о том, как angular 2 взаимодействует как временная шкала, а не только в момент времени, о котором я думаю. Я не видел, чтобы кто-то еще упоминал об этом, поэтому я ...
Причина, по которой требуется * ngIf, потому что он попытается проверить длину этой переменной до того, как произойдет остальная часть материала OnInit, и выдаст ошибку «length undefined». Так вот почему вы добавляете? потому что его еще не будет, но скоро будет.
источник