这是我的console.log但是我只能访问名称而不是消息, 我能够打印名称但当我尝试打印消息时,当我打印数据时,我在页面上得到[对象] [对象],想要删除-LCE-36m4sdrPGFpusM6:
//输出
messages:
-LCE-36m4sdrPGFpusM6:
date:"2018/5/11"
haveConsultant:true
hour:"12:40"
message:"hi"
name:"Teste chat 2"
我的代码用来自firebase的angular打印此输出,我该怎么做才能访问消息嵌套数组???
getUsersChat() {
let clientsKeys: Array < any > ;
let i = 0;
console.log('obter chats ativados');
this.mySegService.getChats().take(1).subscribe(res => {
clientsKeys = Object.keys(res);
this.totalNumberClients += clientsKeys.length;
clientsKeys.forEach(clientKey => {
if (i < ++i && res[clientKey]['messages'] !== undefined) {
this.clientsShortList.push({
name: res[clientKey]['name'],
messages: res[clientKey]['messages']
});
}
i += 1;
});
console.log(this.clientsShortList);
});
}
//我的HTML代码
<mat-list>
<mat-list-item *ngFor="let chat of clientsShortList">
<mat-icon mat-list-icon>account_circle</mat-icon>
<h4 mat-line>{{chat.name}}</h4>
<button mat-button>see more</button>
</mat-list-item>
</mat-list>
答案 0 :(得分:1)
此问题的一个可能的简单解决方案是在尝试JSON.stringify
之前console.log
消息对象。
根据对象的浏览器和格式,只需调用console.log(obj)
就不会有诀窍。
在您的情况下,这将是对该行的更改:
messages: res[clientKey]['messages']
改为
messages: JSON.stringify(res[clientKey]['messages'])
答案 1 :(得分:1)
您可以先使用Object.keys
获取随机ID,如下所示:
var key = Object.keys(res[clientKey]['messages'])[0];
然后获取这样的消息对象:
console.log(res[clientKey]['messages'][key])