Refered zu https://angular.io/docs/ts/latest/guide/displaying-data.html und stapeln Wie leeres Objekt in Winkel 2 Vorlage überprüfen mit * ngIf noch immer nicht definiert Syntaxfehler selbst Kontext. Wenn ich die * ngIf-Bedingung entferne, erhalte ich Werte in teamMembers, wenn ich einen Wert hineinschiebe, damit ich auf Werte in teamMembers zugreifen kann.
Mein teamMember
Objekt ist, [ ] array
ich versuche zu überprüfen, ob das Bedingungsarray nach Größe leer ist.
Versuche:
<div class="row" *ngIf="(teamMembers | json) != '{}'">
und
<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>
Komponente:
@Component({
selector: 'pbi-editor',
})
export class AppComponent implements OnInit {
teamMembers: User[];
Jede Hilfe wäre großartig.
angular
angular2-template
Karthigeyan Vellasamy
quelle
quelle
Antworten:
Diese prüft zunächst , ob
teamMembers
einen Wert , und wennteamMembers
keinen Wert haben, es nicht versucht , den Zuganglength
von ,undefined
weil der erste Teil der Bedingung bereits versagt.quelle
safe navigation operator
: angular.io/guide/template-syntax#safe-navigation-operatorSie können
*ngIf="teamMembers != 0"
damit überprüfen, ob Daten vorhanden sindquelle
Möglicherweise ein leichter Overkill, aber die erstellte Bibliothek ngx-if-empty-or-has-items prüft, ob ein Objekt, eine Menge, eine Karte oder ein Array nicht leer ist. Vielleicht hilft es jemandem. Es hat die gleiche Funktionalität wie ngIf (dann wird die Syntax else und 'as' unterstützt).
quelle
Sie können verwenden
Ohne
event.attendees?.length > 0
oder sogarevent.attendees?length != 0
Da
?.length
schon boolescher Wert zurückgeben.Wenn in Array etwas sein wird, wird es angezeigt, sonst nicht.
quelle
Dieser Artikel hat mir sehr geholfen herauszufinden, warum es auch bei mir nicht funktioniert hat. Es gibt mir eine Lektion darüber nachzudenken, wie die Webseite geladen wird und wie Winkel 2 als Zeitachse interagiert und nicht nur zu dem Zeitpunkt, an den ich denke. Ich habe niemanden gesehen, der diesen Punkt erwähnt hat, also werde ich ...
Der Grund, warum * ngIf benötigt wird, weil es versucht, die Länge dieser Variablen zu überprüfen, bevor der Rest des OnInit-Materials passiert, und den Fehler "Länge undefiniert" auslöst. Deshalb fügst du das hinzu? weil es noch nicht existiert, aber es wird bald.
quelle