Referido a https://angular.io/docs/ts/latest/guide/displaying-data.html y apilar Cómo verificar el objeto vacío en la plantilla angular 2 usando * ng Si aún se obtiene un error de sintaxis, el contexto personal no está definido. Si elimino la condición * ngIf, obtengo valores en teamMembers si introduzco algún valor en ella para poder acceder a los valores en teamMembers.
mi teamMember
objeto es que [ ] array
estoy tratando de verificar que la matriz de condiciones esté vacía por tamaño.
Intentos :
<div class="row" *ngIf="(teamMembers | json) != '{}'">
y
<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>
Componente :
@Component({
selector: 'pbi-editor',
})
export class AppComponent implements OnInit {
teamMembers: User[];
Cualquier ayuda sería genial.
angular
angular2-template
Karthigeyan Vellasamy
fuente
fuente
Respuestas:
<div class="row" *ngIf="teamMembers?.length > 0">
Esto comprueba primero si
teamMembers
tiene un valor y siteamMembers
no tiene un valor, que no intenta el accesolength
deundefined
porque la primera parte de la condición ya no.fuente
safe navigation operator
: angular.io/guide/template-syntax#safe-navigation-operatorPuede usar
*ngIf="teamMembers != 0"
para verificar si hay datos presentesfuente
Tal vez una ligera exageración, pero la biblioteca creada ngx-if-empty-or-has-items comprueba si un objeto, conjunto, mapa o matriz no está vacío. Quizás ayude a alguien. Tiene la misma funcionalidad que ngIf (entonces, se admite la sintaxis else y 'as').
fuente
Puedes usar
Sin
event.attendees?.length > 0
ni siquieraevent.attendees?length != 0
Porque
?.length
ya devuelve un valor booleano .Si en la matriz será algo, lo mostrará de lo contrario no.
fuente
Este artículo me ayudó mucho a descubrir por qué tampoco funcionaba para mí. Me dio una lección pensar en la carga de la página web y en cómo angular 2 interactúa como una línea de tiempo y no solo como el momento en el que estoy pensando. No vi a nadie más mencionar este punto, así que lo haré ...
La razón por la que se necesita * ngIf es porque intentará comprobar la longitud de esa variable antes de que suceda el resto de las cosas de OnInit, y arrojará el error "length undefined". ¿Entonces por eso agregas el? porque todavía no existirá, pero pronto lo hará.
fuente