繁体   English   中英

如何强制从Observable返回的对象类型到Angular中的对象数组?

[英]How to force Object type returned from an Observable to an array of objects in Angular?

我正在使用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>

我知道我可以通过像这样的服务公开数据来解决它,但是部分地,我想在这里做个快速入门并学习如何做。 部分地,我将在服务代码中遇到同样的问题。

我已经尝试在下一个值上使用mapforEach ,但是我得到了一个错误,指出Object不是数组 IDE建议将工作数组添加到语法中,以使其成为next.array.forEach,但是甚至没有执行,从而产生了大量红色墨水。

我该怎么办? (不确定在此阶段要用什么Google进行搜索。)

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;

您可以将对象转换为数组,然后再传递给模板object-2-array-angular-4

或使用自定义管道将对象转换为数组

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM