это мой console.log, но я могу получить доступ только к имени, а не к сообщениям, им удалось распечатать имя, но когда я пытаюсь распечатать сообщения, я получаю [объект] [объект] на странице, когда я печатаю данные, хочу удалите -LCE-36m4sdrPGFpusM6:
//выход
messages:
-LCE-36m4sdrPGFpusM6:
date:"2018/5/11"
haveConsultant:true
hour:"12:40"
message:"hi"
name:"Teste chat 2"
Мой код, чтобы напечатать этот результат с угловым приближением от firebase, как я могу сделать, чтобы получить доступ к вложенному массиву сообщений???
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>
Вы можете сначала получить случайный идентификатор с помощью Object.keys
следующим образом:
var key = Object.keys(res[clientKey]['messages'])[0];
И затем получите объект сообщения следующим образом:
console.log(res[clientKey]['messages'][key])
Возможным простым решением этой проблемы будет JSON.stringify
объект сообщений, прежде чем пытаться его console.log
.
В зависимости от браузера и формата объекта просто вызов console.log(obj)
не всегда будет делать трюк.
В вашем случае это будет изменение строки:
messages: res[clientKey]['messages']
вместо этого
messages: JSON.stringify(res[clientKey]['messages'])