ChangeDetectionStrategy不正确

时间:2017-04-20 12:00:23

标签: angular ionic2 angular2-changedetection

我正在使用离子2

这是我的代码......

date

这是我的checkdate功能。

<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(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 WARNING: Exception was thrown by user callback. Error: Expression has changed after it was checked. Previous value: 'April 10, 2017'. Current value: ''.

现在。我没有错误的消息。但是没有显示内容。

我安慰了聊天。这很好。但它没有显示任何价值。

在我去backbutton.content的同时显示onesec ..

如果我删除了ChangeDetectionStrategy。

我再次得到这个错误的消息

import {  Component, ChangeDetectionStrategy } from '@angular/core';
@Component({
  changeDetection: ChangeDetectionStrategy.OnPush,
  selector: 'page-chat',
  templateUrl: 'chat.html',

})

为什么使用ChangeDetectionStrategy.UI值不显示..

1 个答案:

答案 0 :(得分:0)

严重的是,你在检查后修改了模型的状态。你不应该没有绑定到变量。删除

this.msgdate="";