【发布时间】:2019-01-29 14:20:29
【问题描述】:
我从套接字接收到一个对象,我想使用 *ngFor 将其打印到屏幕上。我在控制台中收到以下错误 Error trying to diff 'asd'. Only arrays and iterables are allowed
角度 ts
ngOnInit() {
console.log('ngOnInit');
this.socket.on('online',(people:number)=>{
console.log('online:',people);
})
this.socket.on('message',(data:any)=>{
console.log('socket-emit:',data);
})
this.socket.on('msg',(data:any)=>{
console.log(data);
this.MessageList = data;
for(let key in data){
this.MessageList.push(key);
}
// console.log(this.MessageList['name'] ,":",this.MessageList['message']);
})
}
角度html
<div *ngIf="MessageList">
<li *ngFor="let m of MessageList">
<span>{{m}}</span>
</li>
</div>
【问题讨论】:
-
执行console.log(data)时是否看到控制台中的数据?
-
看起来你正在接收一个对象,而不是你应该得到一个对象数组。例如,你应该得到 [{message:"something", name : "abc"}, {message: "anotherthing", name: "pqr"}]
标签: angular