【问题标题】:Iterating through Object (data) - Angular遍历对象(数据) - Angular
【发布时间】:2017-09-14 23:14:45
【问题描述】:

下面是我的代码,我想做的是订阅触发发送功能后返回的数据。现在订阅后,我将从我的 API 返回的数据分配给 this.Data 以传递给我的 ngFor 以显示我的数据。但我收到错误Error trying to diff '[object Object]'。难道是我没有达到数据中的显示属性或没有接受正确格式(对象)的数据?

Data: DataLink[] = [];


        Send(){

                this.http.forward(this.info)
                 .subscribe( data => {

                     this.Data = data;


                       console.log(data);
                 }) }

    <div *ngFor="let msg of Data">

      {{msg.display}}


**response**
 data: Array
    0: Object
       display: "How are you?"

【问题讨论】:

    标签: angular


    【解决方案1】:

    直接在按键上循环。你应该没事的

    Send(){
    
                    this.http.forward(this.info)
                     .subscribe( data => {
    
                  Object.keys(data).forEach(key => {
    
                      this.Data = data[key];
    
                           console.log(data);
                     }) }
    
        <div *ngFor="let msg of Data">
    
          {{msg.display}}
    </div>
    

    【讨论】:

      【解决方案2】:

      您看到的错误是因为data 是一个对象,而ngFor 需要一个数组。

      看看这个答案:Error trying to diff '[object Object]'

      另外,关于角度http 服务文档/示例https://angular.io/docs/ts/latest/guide/server-communication.html,请参阅此

      【讨论】:

      • 请问我访问显示响应是否正确?
      • 谁是forward?更重要的是this.http 是什么?
      • forward 是我的 service.ts 中的一个函数
      • 我假设它调用了 Angular 的 http 服务 get, post ...等。如果是这种情况,并且您从 REST api 中获得了期望的响应,那么是的,您做对了。另外,请参阅http 服务文档/示例angular.io/docs/ts/latest/guide/server-communication.html
      猜你喜欢
      • 2016-09-26
      • 2020-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-23
      • 2020-06-10
      • 1970-01-01
      相关资源
      最近更新 更多