我有一个json对象如下:
的Json
{error: false, message: [,…]}
内幕消息:
{convid: "5aeab8a0e5dd7c55942a7ce7", recipient: "Akhil Sindhwani", seen: false, from: "Miti Desai",…}
致辞:“5aeab8a0e5dd7c55942a7ce7”来自:“Miti Desai”消息: “asdsad”收件人:“Akhil Sindhwani”看到:虚假主题:“sasas” updatedAt:“2018-05-03T07:22:09.367Z”
我在Angular工作,上面是我从http服务获得的响应。
服务功能:
getUserMessages() {
console.log("getUserMessages");
this._mailingService.getMessages()
.subscribe(conversations => {
this.messageData = conversations
if (conversations) {
console.log( this.messageData);
this.messageData = conversations
}
})
, error => {
console.log("Error");
},
() => {
// THIS IS EXECUTED AFTER THE SUBSCRIBE COMPLETES
console.log( 'this.messageData');
console.log( this.messageData);
}
}
在上面的代码中,我在对话中得到了一个响应,我得到了json对象。 我把那个对象放在消息数据中。
在html中,我尝试解析消息数据如下:
<div id="messageMenu">
<ul>
<li class='msgBody' *ngFor = "let message of messageData.message">
<div class="msgListingContainer1">
<div class="senderImg">
<img src="../../../../assets/images/profile1.jpg">
</div>
</div>
<div style=" display:inline-block" class="msgListingContainer2">
<span style=" display:inline-block" class="senderName">{{message.recipients}}</span>
<span class="msgTimestamp">5:13pm</span>
<p class="msgheading"><span>Hey alex pretty cool new track you got..</span></p>
</div>
</li>
</ul>
</div>
但我收到此错误消息:
MessageMenuComponent.html:6 ERROR TypeError:无法读取属性 未定义的'消息'
我试图从json获取一个键,然后使用ngFor指令循环它。这很简单,我以前做过这个。
谁能告诉我我做错了什么?
任何帮助将不胜感激!
更新
不确定它是如何工作的。 没有更改组件文件中的任何内容。
将html更改为:
<div id="messageMenu">
<ng-container *ngIf="showConversations;else noCnvrstns" >
<ul>
<li class='msgBody' *ngFor = "let message of messageData">
<div class="msgListingContainer1">
<div class="senderImg">
<img src="../../../../assets/images/profile2.jpg">
</div>
</div>
<div style=" display:inline-block" class="msgListingContainer2">
<span style=" display:inline-block" class="senderName">{{message.recipient}}</span>
<span class="msgTimestamp">{{ message.updatedAt | date:'hh:mm a' }}</span>
<p class="msgheading">{{message.messages}}</p>
</div>
</li>
</ul>
</ng-container>
<ng-template #noCnvrstns>
<div class="noConversations">No conversations to show</div>
</ng-template>
</div>
开始得到回复。
我不明白什么时候消息在json对象的消息键中,然后我怎么能直接从会话中获取它们但是为我工作。
不添加答案,因为问题本身是不明确的。
感谢您的帮助!
答案 0 :(得分:0)
在asnyc调用获取数据的情况下,最好使用安全导航?
。它不会使角度发生错误。
试试这个 -
<li class='msgBody' *ngFor = "let message of messageData?.message">
同时在声明类型messageData: any
时。
答案 1 :(得分:0)