2017-04-20 12 views
0

をWRKない。ここChangeDetectionStrategyは、私はここで、イオン2</p> <p>を使用しています適切に

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

私は私のコードでこれらの行を持っていることによって、この作業を行っているので:

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

}) 

はNow.I一切のErr msg.Butのコンテンツを取得していない表示されていないのです。

私はチャットを頼んだ。それは素晴らしいことだ。しかし、それは何の価値も表示しない。私はChangeDetectionStrategyを削除した場合、私はbackbutton.contentに行くと同時に、

が表示onesec ..

です。

は再び私はこのERRのMSGを取得

FIREBASE WARNING: Exception was thrown by user callback. Error: Expression has changed after it was checked. Previous value: 'April 10, 2017'. Current value: ''. 

なぜ表示されませChangeDetectionStrategy.UI値を使用して...それがcheckdた後に真剣にあなたは、モデルの状態をmodifyinngている

答えて

0

。変数にバインドせずにはいけないということです。

this.msgdate=""; 
+0

Thanks.Iが.Butはまだ値を更新しないで削除..私はまたchangeDetectorRef.markForCheck(使用 – ANISUNDAR

+0

)を削除します。しかし、まだ怒っていない。 – ANISUNDAR

+0

エラーは、変更検出器でチェックされる前に変数を変更する別の方法を見つけるまで、表示されなくなります。そのため、コンポーネントを変更した後でモデルの更新された値を取得できるように、変数をバインドすることを提案しました。 –

関連する問題