2017-12-21 24 views
1

編集を作成しようとしていますので、フォームを作成して値を割り当てます。しかし、私はここでエラーEXCEPTION:イオン入力を確認した後に式が変更されました

ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'undefined'. Current value: 'XXXXXX'.

を取得し、私のedituser.ts

import { Component } from '@angular/core'; 
import { IonicPage, NavController, NavParams } from 'ionic-angular'; 
import { Storage } from '@ionic/Storage'; 

/** 
* Generated class for the EdituserPage page. 
* 
* See https://ionicframework.com/docs/components/#navigation for more info on 
* Ionic pages and navigation. 
*/ 

@IonicPage() 
@Component({ 
    selector: 'page-edituser', 
    templateUrl: 'edituser.html', 
}) 
export class EdituserPage { 

    fullname : any; 
    Deskripsi : any; 
    phone:any; 
    Email:any; 
    user_id:any 
    userData = {"username": "","password": "", "fullName": "","Email": "", "Deskripsi" : "", "Phone":""}; 

    constructor(public navCtrl: NavController, public navParams: NavParams,public storage: Storage) { 

    } 
ionViewDidLoad() { 
     this.storage.get('userData').then((val) => { 
       this.fullname = val.fullname; 
       this.Deskripsi = val.Deskripsi; 
       this.phone = val.phone; 
       this.Email = val.Email; 
       this.user_id = val.user_id; 
     }); 
    } 

    update(){ 
     console.log(this.userData); 
    } 


} 

であり、ここで私のフォームedituser.htmlは

私はこの問題を解決するにはどうすればよい
<ion-list margin-top> 
    <ion-item>   
      <ion-label> <ion-icon name="person"></ion-icon></ion-label> 
      <ion-input [(ngModel)]="userData.fullname" value="{{fullname}}" type="text"></ion-input> 
    </ion-item> 

    <ion-item>   
      <ion-label> <ion-icon name="md-phone-portrait"></ion-icon></ion-label> 
      <ion-input [(ngModel)]="userData.phone" value="{{phone}}" type="text"></ion-input> 
    </ion-item> 

    <ion-item>   
      <ion-label> <ion-icon name="md-mail"></ion-icon></ion-label> 
      <ion-input [(ngModel)]="userData.Email" value="{{Email}}" type="text"></ion-input> 
    </ion-item> 

    <ion-item>   
      <ion-label> <ion-icon name="md-megaphone"></ion-icon></ion-label> 
      <ion-textarea [(ngModel)]="userData.Deskripsi" value="{{Deskripsi}}" type="text"></ion-textarea> 
    </ion-item> 

    <ion-item>   
     <button ion-button color="secondary" (click)="update();" float-right>Update</button> 
    </ion-item> 

</ion-list> 

のですか?

+0

の可能性のある重複した[角度2 - それが確認した後に発現が変化している](https://でのstackoverflow.com/questions/41283293/angular-2-expression-has-changed-after-it-was-checked) –

答えて

0

角度ライフサイクルによるこのエラー。以下のようにenableProdModeでプロジェクトを実行してください。あなたのapp.module.tsで

(プロジェクトのブートストラップおよびその他のコンポーネント登録を定義する主成分)

import { Component, NgModule, enableProdMode } from "@angular/core"; 

export class AppModule { 

} 
enableProdMode(); 
0

ionViewDidLoad右フックのようではありません。これは、ビューがすでにロードが完了したように思えます。つまり、すべてのバインディングが設定されていることを意味します。その後、おそらくこの問題を引き起こすバインディングを変更します。

あなたのstorage.getngOnInitライフサイクルフック

0

これはライフサイクルエラーあるに移動する必要があります。 Angularは、ライフサイクルチェック中に変数を変更したときに失われたことを伝えます。

これを避けるには、ionViewDidLoad()の内容をタイムアウトにするか、別の場所で呼び出すことができます。ところで、どこで呼んでいますか?

関連する問題