当前位置: 首页 > 知识库问答 >
问题:

Angular 2超文本传输协议获取对象数组

公西俊才
2023-03-14

我目前正在与Angular2和Ionic2一起练习。我想从API检索数据(例如:https://www.cryptocompare.com/api/data/coinlist/). 要检索我使用load方法创建的提供程序中的数据,请执行以下操作:

load() {
if (this.currencies) {
  // already loaded data
  console.log('already has data');
  return Promise.resolve(this.currencies);
}

var url = this.baseUrl + '/coinlist';

// don't have the data yet
return new Promise(resolve => {
  this.http.get(url)
    .map(res => res.json().Data)
    .subscribe(data => {
      this.currencies = data;
      resolve(this.currencies);
      console.log(this.currencies);
    });
}); 
}

为了显示数据,我制作了以下模板结构:

<ion-row *ngFor="let currency of currencies | orderBy : ['-Name'] | keys" (click)="itemTapped($event, currency)">
    <ion-col width-10>
    1
    </ion-col>
    <ion-col width-60>
    {{currency.Name}}
    </ion-col>
    <ion-col width-30>
    {{currency.FullName}}
    </ion-col>
  </ion-row>
  <ion-row>

这里我使用管道,因为响应是对象。然而,我似乎不能使它工作。log告诉我,响应仍然是带有对象的对象,我猜问题就在那里。(console.log在控制台中也显示两次?)

Console:Console.log的this.currences

作为参考,Pipe类:

@Pipe({name: 'keys'})
export class KeysPipe implements PipeTransform {
  transform(value, args:string[]) : any {
    if (!value) {
      return value;
    } 
    let keys = [];
    for (let key in value) {
      keys.push({key: key, value: value[key]});
    }
    return keys;
  } 
}

该视图显示一个空列表,并且控制台中没有输出错误。有人知道怎么解决吗?非常感谢

共有1个答案

司马腾
2023-03-14

我可能错了,但它与AngularJS 1. x一起工作。

不使用对象,而是将其更改为数组

$http.get('/*request*/').success(function(data){
angular.forEach(data, function(value, key){
    users.push(value);
});
/*your code*/
});
 类似资料:
  • 我只是有一个关于服务中http请求的结构和处理响应的问题。我正在使用Angular2。alpha46 Typescript(刚刚开始测试-我喜欢它…Ps…。感谢所有一直致力于它并通过github作出贡献的人) 因此,采取以下措施: 登录表单。组成部分ts 从这个组件中,我导入了我的userService,它将容纳我的超文本传输协议请求,以登录用户。 使用者服务ts 我想做的是能够处理http请求之

  • 调用SOAX Web服务,并使用groovy脚本检查Web服务响应的超文本传输协议状态。在《骡子3》中,精彩的剧本是... 骡子4中的等价物是什么?谢谢。

  • 需要你的帮助吗 这总是返回:I`try:it并使用这个lib并执行它,但对我来说没有任何效果。。所以,请帮帮我。 更新:在Python2.7中,使用以下请求: 但我需要用围棋( UPD:修正:只需复制到并添加。

  • 我正在使用GWT和Spring controller来管理http流量。有些请求可能需要很长时间,但我希望在超过给定时间时终止请求。 我如何配置超时Spring。我也使用Apache Tomcat 7.0。我试图在tomcat上inrease最大线程,但有一段时间tomcat工作缓慢,因为请求线程不会死。

  • 我有这个问题: 我需要从服务器下载一个zip文件,这个zip包含。xod和。巴布亚新几内亚。我正在使用AngularJS,JavaSpring,来克服跨域问题,我的htt。获取java spring控制器的角度调用,它将进行真正的get调用。我必须下载zip- 这是我的角度代码: 这是java spring代码: 这是控制台。日志: Object{data:"UEsDBBQACAAIAA5Ipkg

  • 我的LogCat: 签名密钥(sw)为https://api.dropbox.com/1/shares/dropbox/a.jpg?oauth_consumer_key=2f2y1dyuqhp58ek 我对http没有太多经验。。 因为httpPost=新的httpPost(sw);工作正常,这是否意味着基本字符串签名正确? 还是我错过了什么?