অ্যাংুলারগুলি ব্যবহার করার চেষ্টা করতে *ngFor
এবং *ngIf
একই উপাদানটিতে আমার সমস্যা হচ্ছে।
সংগ্রহটিতে লুপ করার চেষ্টা করার সময় *ngFor
, সংগ্রহটি দেখা যায় null
এবং ফলস্বরূপ যখন টেম্পলেটে এর বৈশিষ্ট্যগুলি অ্যাক্সেস করার চেষ্টা করা হয় তখন ব্যর্থ হয়।
@Component({
selector: 'shell',
template: `
<h3>Shell</h3><button (click)="toggle()">Toggle!</button>
<div *ngIf="show" *ngFor="let thing of stuff">
{{log(thing)}}
<span>{{thing.name}}</span>
</div>
`
})
export class ShellComponent implements OnInit {
public stuff:any[] = [];
public show:boolean = false;
constructor() {}
ngOnInit() {
this.stuff = [
{ name: 'abc', id: 1 },
{ name: 'huo', id: 2 },
{ name: 'bar', id: 3 },
{ name: 'foo', id: 4 },
{ name: 'thing', id: 5 },
{ name: 'other', id: 6 },
]
}
toggle() {
this.show = !this.show;
}
log(thing) {
console.log(thing);
}
}
আমি জানি যে সহজ সমাধানটি *ngIf
একটি স্তরকে সরিয়ে নিয়ে যাওয়া তবে একটিতে তালিকার আইটেমগুলি লুপিংয়ের মতো দৃশ্যের জন্য ul
, li
যদি সংগ্রহটি খালি হয় তবে আমি আমার শূন্যস্থানটি শেষ করব না , বা আমার li
এসকে আবদ্ধকারী ধারক উপাদানগুলিতে আবৃত করব ।
এই plnkr উদাহরণ ।
কনসোল ত্রুটি নোট করুন:
EXCEPTION: TypeError: Cannot read property 'name' of null in [{{thing.name}} in ShellComponent@5:12]
আমি কি কিছু ভুল করছি বা এটি একটি বাগ?