2016-07-24 55 views
1

我不知道如何通过我的对象对象(但它应该是数组): Data structureAngular2 rc1 ngFor“无法找到类型为'object'的不同支持对象'[object Object]'

Error: Cannot find a differ supporting object '[object Object]' of type 'object'. NgFor only supports binding to Iterables such as Arrays.

视图结构:

<a *ngFor="let msg of messages " href class="clearfix"> 
      <div class="img-area"><img [ngClass]="{'photo-msg-item': !msg.from}" 
            src="{{ (msg.from || (msg.from | baProfilePicture)) }}"></div> 
      <div class="msg-area"> 
      <div>{{ msg.message }}</div> 
      <span>{{ msg.send_date }}</span> 
      </div> 
     </a> 

组件:

public notifications:Array<Object>; 
    public messages:Array<Message>; 
    public data_error: Boolean = false; 
    constructor(private _baMsgCenterService:BaMsgCenterService) { 
     this.messages = this._baMsgCenterService.getMessages().subscribe(
     (messagess) => { 

      let result:Array<Message> = []; 
      if (messagess) { 
      messagess.forEach((message) => { 
      result.push(
       new Message(message[0], 
         message[1], 
         message[2], 
         message[3], 
         message[4]) 
       ); 
      }); 
     } 
     this.messages = result; 
     }, 
     err => { this.data_error = true} 
    ); 
+0

你可以发布你的数据是可迭代的,也可以在那里得到错误行号。 ?如果你提供代码的话,效果会更好。 –

回答

1

第I你的问题所在,在这条线的油墨:

this.messages = this._baMsgCenterService.getMessages().subscribe(

看来你要Subscription对象设为您的messages变量(subscribe方法返回Subscription对象https://github.com/ReactiveX/rxjs/blob/master/src/Observable.ts#L87

所以,你必须删除此方影响。它应该是:

this._baMsgCenterService.getMessages().subscribe(
+0

很多,非常感谢。它工作,我愚蠢的错误。 –

+0

不客气! – yurzui

0
<a *ngFor="let msg of messages | async " href class="clearfix"> 

尝试加入一些 “异步”

here

相关问题