在 Angular 中使用 ngFor 正确显示数据
Displaying data with ngFor in Angular properly
我正在尝试显示从端点接收到的一些数据。将它打印到控制台日志工作正常,但我无法在 HTML 页面上显示它,即该页面是空白的。我试过
<ul>
<li *ngFor="let animal of animals | async">
{{ animal }}
</li>
</ul>
这是我设置组件的方式:
export class PageComponent implements OnInit {
animals : Animals [];
constructor(private store: Store) { }
ngOnInit() {
this.store.dispatch(fetchUsers).subscribe(animals => {
this.animals = animals ;
console.log(this.animals );
});
}
}
在控制台中,我收到了 JSON,这是我从我的端点接收到的:
animals :
animals : Array(1)
0: {id: "1562", animalType: "dog"}
我希望它成为 return 动物对象,但稍后我打算让它打印 animalType
animals 不是可观察的,你为什么要使用异步??
真的:
<ul>
<li *ngFor="let animal of animals">
{{ animal }}
</li>
</ul>
您不需要 async 运算符,因为您没有为 属性 动物使用 promise 或 observable,所以您所需要的只是对它的引用。您还需要为您的数组尚未初始化时添加某种保护。我为此使用了 ngIf:
<ul *ngIf="animals">
<li *ngFor="let animal of animals">
{{ animal.animalType }}
</li>
</ul>
https://angular.io/api/common/AsyncPipe
然后在你的component.ts
ngOnInit() {
this.store.dispatch(fetchUsers).subscribe(animals => {
this.animals = animals.animals ; // looks like you need to work on this
console.log(this.animals );
});
}
我正在尝试显示从端点接收到的一些数据。将它打印到控制台日志工作正常,但我无法在 HTML 页面上显示它,即该页面是空白的。我试过
<ul>
<li *ngFor="let animal of animals | async">
{{ animal }}
</li>
</ul>
这是我设置组件的方式:
export class PageComponent implements OnInit {
animals : Animals [];
constructor(private store: Store) { }
ngOnInit() {
this.store.dispatch(fetchUsers).subscribe(animals => {
this.animals = animals ;
console.log(this.animals );
});
}
}
在控制台中,我收到了 JSON,这是我从我的端点接收到的:
animals :
animals : Array(1)
0: {id: "1562", animalType: "dog"}
我希望它成为 return 动物对象,但稍后我打算让它打印 animalType
animals 不是可观察的,你为什么要使用异步?? 真的:
<ul>
<li *ngFor="let animal of animals">
{{ animal }}
</li>
</ul>
您不需要 async 运算符,因为您没有为 属性 动物使用 promise 或 observable,所以您所需要的只是对它的引用。您还需要为您的数组尚未初始化时添加某种保护。我为此使用了 ngIf:
<ul *ngIf="animals">
<li *ngFor="let animal of animals">
{{ animal.animalType }}
</li>
</ul>
https://angular.io/api/common/AsyncPipe
然后在你的component.ts
ngOnInit() {
this.store.dispatch(fetchUsers).subscribe(animals => {
this.animals = animals.animals ; // looks like you need to work on this
console.log(this.animals );
});
}