Merujuk ke https://angular.io/docs/ts/latest/guide/displaying-data.html dan tumpukan Bagaimana memeriksa objek kosong di template sudut 2 menggunakan * ngIf masih mendapatkan konteks diri kesalahan sintaks tidak ditentukan. Jika saya menghapus kondisi * ngIf maka saya mendapatkan nilai di teamMembers jika saya memasukkan beberapa nilai ke dalamnya sehingga saya dapat mengakses nilai di teamMembers.
teamMember
objek saya adalah [ ] array
saya mencoba untuk memeriksa array kondisi kosong menurut ukuran.
Mencoba:
<div class="row" *ngIf="(teamMembers | json) != '{}'">
dan
<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>
Komponen:
@Component({
selector: 'pbi-editor',
})
export class AppComponent implements OnInit {
teamMembers: User[];
Bantuan apa pun akan sangat bagus.
angular
angular2-template
Karthigeyan Vellasamy
sumber
sumber
Jawaban:
<div class="row" *ngIf="teamMembers?.length > 0">
Cek ini pertama jika
teamMembers
memiliki nilai dan jikateamMembers
tidak memiliki nilai, tidak mencoba untuk mengakseslength
dariundefined
karena bagian pertama dari kondisi yang sudah gagal.sumber
safe navigation operator
: angular.io/guide/template-syntax#safe-navigation-operatorAnda dapat menggunakan
*ngIf="teamMembers != 0"
untuk memeriksa apakah ada datasumber
Mungkin sedikit berlebihan tetapi membuat perpustakaan ngx-if-empty-or-has-items itu memeriksa apakah sebuah objek, set, peta atau array tidak kosong. Mungkin itu akan membantu seseorang. Ini memiliki fungsionalitas yang sama dengan ngIf (maka, else dan sintaks 'as' didukung).
sumber
Kamu bisa memakai
Tanpa
event.attendees?.length > 0
atau bahkanevent.attendees?length != 0
Karena
?.length
sudah mengembalikan nilai boolean .Jika dalam array akan menjadi sesuatu itu akan menampilkannya yang lain tidak.
sumber
Artikel ini banyak membantu saya mencari tahu mengapa itu tidak berhasil untuk saya juga. Ini memberi saya pelajaran untuk memikirkan pemuatan halaman web dan bagaimana sudut 2 berinteraksi sebagai garis waktu dan bukan hanya titik waktu yang saya pikirkan. Saya tidak melihat orang lain menyebutkan hal ini, jadi saya akan ...
Alasan * ngIf diperlukan karena ia akan mencoba memeriksa panjang variabel itu sebelum sisa OnInit terjadi, dan memunculkan kesalahan "length undefined". Jadi itu sebabnya Anda menambahkan? karena itu belum ada, tapi akan segera.
sumber