我正在使用 Ionic 2。
这是我的代码:
<div class="messagesholder"
*ngFor="let chat of chatval | orderby:'[date]'; let i = index;let first=first;let last = last;">
{{last ? callFunction() : ''}}
<div *ngIf="chat.sender == currentuser || chat.receiver == currentuser" >
{{checkdate(chat.date)}}
<p class="chat-date" id="abc" #abc>{{msgdate | amDateFormat:'LL'}}</p>
</div>
这是我的
checkdate
功能:
checkdate(date)
{
var res = date.split(" ");
var A=res[0];
var local=localStorage.getItem('chatdate');
this.msgdate="";
if(local === undefined || local === null)
{
this.msgdate=A;
localStorage.setItem('chatdate',this.msgdate);
}
else if(local !== undefined)
{
console.log(local != A);
if(local != A)
{
this.msgdate = A;
localStorage.setItem('chatdate',this.msgdate);
}
}
}
callFunction(){
this.content.scrollToBottom(0)
}
它正在工作。但我收到此错误:
FIREBASE 警告:用户回调引发异常。错误:表达式在检查后发生了变化。先前值:“2017 年 4 月 10 日”。当前值:''。
因为,我通过在代码中添加这些行来实现此功能:
import { Component, ChangeDetectionStrategy } from '@angular/core';
@Component({
changeDetection: ChangeDetectionStrategy.OnPush,
selector: 'page-chat',
templateUrl: 'chat.html',
})
现在,我没有收到任何错误消息。但内容不显示。
我安慰了聊天值。运行良好。但它并没有显示任何价值。
同时,当我返回后退按钮时,内容确实显示一秒。
如果我删除
ChangeDetectionStrategy
,
我再次收到此错误消息:
FIREBASE 警告:用户回调引发异常。错误:表达式在检查后发生了变化。先前值:“2017 年 4 月 10 日”。当前值:''。
为什么我需要使用
ChangeDetectionStrategy
? UI 值不显示。
说真的,您正在检查模型后修改其状态。如果不绑定到变量,你就不应该这样做。删除
this.msgdate="";