javascript - NgIf 有时使用 2 条件无法正常工作
问题描述
在这篇文章之后隐藏聊天,如果在与最后一次聊天的同一分钟内,我收到了这样的错误
红线,时间没有出现,但在它下面(绿线)它再次出现。绿线就是我想要的,我正在使用这个 ngIf 语句
<div *ngIf="message.time === messages[i - 1]?.time && message.author !== messages[i-1]?.author" [ngClass]="{ 'bot': message.author === 'bot',
'user': message.author === 'user' }">
<time class="time">{{ message.time | date:'shortTime' }}</time>
</div>
我认为它应该可以正常工作,但是我在哪里做错了,知道吗?
编辑 2
所以我认为错误是当分钟改变看到这个
编辑
这就是我编码的方式
<ng-container
*ngIf="(message.time | date: 'dd MMMM yyyy') === (time | date: 'dd MMMM yyyy'); then today else showDate">
</ng-container>
<ng-template #today>
<p class="dividerDate">Today</p>
</ng-template>
<ng-template #showDate>
<p class="dividerDate">{{ message.time }}</p>
</ng-template>
解决方案
我们应该检查不同的时间而不是相反,问题不是很清楚,但试试这个
"message.time !== messages[i - 1]?.time || message.author !== messages[i-1]?.author"
如果作者与消息不同或时间不同,那么我们将显示时间
我希望这是您需要的逻辑,如果不是只用时间进行实验,然后从那里开始,例如显示时间是否不同,无论作者如何
"message.time !== messages[i - 1]?.time"
推荐阅读
- python - 具有“动态常量”的 Python 工厂函数
- python - 即使列中的单个值不是 NaN,如何过滤 Coulmns
- java - Log4j 2 记录输出消息,带有指向文件号的链接
- javascript - 如何在reactjs或js中的includes关键字中传递元素数组作为参数
- javascript - 按下 ENTER 键时防止 Textarea 中的换行的代码不起作用
- c# - Why does `UseAuthentication` have to be placed after `UseRouting` and not before?
- oop - Use Ada's My_Class'Class(This) cast to mimic template method design pattern
- python - Can't import pygame even though it is installed
- oauth-2.0 - 如何在“使用 Apple 登录”同意屏幕中设置徽标?
- python - 如何通过响应式进度条重复使用 Qthread