【发布时间】:2018-07-31 17:46:06
【问题描述】:
我在请求后在我的数组中添加一个对象。一切顺利,但我希望在收到响应的同时显示新数据。当我收到响应时,我将新对象推送到我的数组中,用于在我的视图中显示消息。
我尝试使用ChangeDetectorRef(detectChanges() 方法)和NgZone(run() 方法)但没有成功。基本上我希望我的视图再次出现在 ngFor 上,以便在发送时显示最后一条消息。
我在互联网上搜索,但找不到任何关于 Angular 的答案,除了一个不起作用的线程。
这是我想要触发消息呈现的代码部分:
this.chatRequestService.send(this.navParams.get('id_chat'), nmMessage, this.token.value).subscribe(
(result) => {
this.messages.push(result);
},
(error) => {
console.log(error);
}
);
这是我在模板中的 ngFor 指令:
<ng-container *ngFor="let message of messages[0]">
<ion-row>
<ion-col col-1 class="round-right"><ion-avatar item-start><img src="assets/imgs/BK.png" alt="Burger King" title="Burger King"></ion-avatar></ion-col> <!-- remplacer par {{message[0]?.sender.profileImageUrl}} -->
<ion-col col-9>
<div *ngIf="currentUser == message?.sender.id else elseBlock1" class="talk-bubble round-left me">
<div class="talktext">
<h5>{{message?.sender.username}}</h5>
<p>{{message?.content}}</p>
</div>
</div>
<ng-template #elseBlock1>
<div class="talk-bubble round-left">
<div class="talktext">
<h5>{{message?.sender.username}}</h5>
<p>{{message?.content}}</p>
</div>
</div>
</ng-template>
</ion-col>
</ion-row>
</ng-container>
提前感谢愿意花时间阅读/回答的任何人。
【问题讨论】:
-
您可能正在寻找
trackBystackoverflow.com/questions/42108217/… -
我真的不明白我将如何使用它?
-
请向我们展示模板和代码(相关部分)。
-
发布更新,ty :)
-
您还应该显示数据结构。我不清楚你为什么使用
*ngFor="let message of messages[0]"。为什么是[0]?由于您在代码中messages的末尾添加了一个新项目,您不应该确保显示最后一个项目,而不是第一个项目吗?或者可能都是messages?