2016-07-24 1 views
1

я не имею понятия, как я могу iteratem мой объект объектов (но он должен быть массив): Data structureAngular2 RC1 ngFor «Не удается найти отличаться поддержки объекта„[объект 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

Можете ли вы опубликовать свои данные, которые являются итерируемыми, а также где вы получите строку с ошибкой no. ? лучше, если вы предоставите плункер вашего кода. –

ответ

1

I й чернила, что ваша проблема находится на этой линии:

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

Кажется, вы пытаетесь установить Subscription объект вашей messages переменной (subscribe метод возвращает объект Subscriptionhttps://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.

Смежные вопросы