我正在使用这样的GET获得回复。
constructor(private http: HttpClient) { }
items: Item[];
stuff: any[];
ngOnInit() {
const url = ...;
this.http.get(url)
.subscribe(next => {
console.log(next);
console.log(next.length);
this.items = next;
this.stuff = next;
});
}
我可以看到有6个元素和它们是什么(检查控制台)。但是,这两个字段都不在数组中。我试图使用 ngFor 指令迭代这些元素,但什么也没看到或只是一行。
<div ngFor="let item of items">
->{{item?.id}}
</div>
<div ngFor="let item of stuff">
->{{item?.id}}
</div>
我知道我可以通过服务like this公开数据来解决这个问题,但部分原因是,我想在这里快速学习并学习如何做到这一点;部分地,我将在服务代码中遇到同样的问题。
我已尝试在 next 值上使用 map 和 forEach ,但我收到错误消息,指出 Object < / em>不是数组。 IDE建议将工作数组添加到语法中,使其成为 next.array.forEach ,但它甚至没有执行,产生大量红色墨水。
我该怎么办? (不知道在这个阶段谷歌应该用什么。)
答案 0 :(得分:1)
donkeyObservArray: Observable<Donkey[]>;
donkeyArray: Array<Donkey>;
this.donkeyObservArray.subscribe(donk=> {
this.donkeyArray = donk;
console.log(this.donkeyArray);
并且开心......
或者输入:
donkey: Donkey= null;
getDonkey(): Donkey{
this.donkey = new Donkey();
this._http.get<Donkey>(...your ws link)
.subscribe(data => {
this.donkey = data;
答案 1 :(得分:1)
您可以在传递给模板之前将对象转换为数组 object-2-array-angular-4
或使用自定义管道将对象转换为数组