2017-05-09 10 views
0

"OK"ポップアップをクリックして変数を更新しようとしていますが、変数の更新方法がわかりません。コンソールでは、更新された値を表示しますが、更新された値は表示されません。ここでイオン2ポップアップハンドラ関数が変数を更新しない

this.barcodeScanner.scan().then((barcodeData) => { 
      let alert = this.alertCtrl.create({ 
       title: 'Barcode scanned Successfully!', 
       subTitle: ''+barcodeData.text, 
       buttons: [{ 
       text: 'OK', 
       handler:() => { 
        this.showForm = true; 
        this.memberVo["barcodeId"] = barcodeData.text; 
       } 
       }] 
      }); 
      alert.present(); 
     }, (err) => { 
      // An error occurred 
      console.log('barcode err--',err); 
      let alert = this.alertCtrl.create({ 
       title: 'Barcode scan Failed!', 
       subTitle: ''+err, 
       buttons: ['OK'] 
      }); 
      alert.present(); 
     }); 

this.showForm = true;変数がビューに更新されていない/ HTML

答えて

0

あなたは、この

this.zone.run(() => { 
    this.barcodeScanner.scan().then((barcodeData) => { 
     let alert = this.alertCtrl.create({ 
      title: 'Barcode scanned Successfully!', 
      subTitle: ''+barcodeData.text, 
      buttons: [{ 
      text: 'OK', 
      handler:() => { 
       this.showForm = true; 
       this.memberVo["barcodeId"] = barcodeData.text; 
      } 
      }] 
     }); 
     alert.present(); 
    }, (err) => { 
     // An error occurred 
     console.log('barcode err--',err); 
     let alert = this.alertCtrl.create({ 
      title: 'Barcode scan Failed!', 
      subTitle: ''+err, 
      buttons: ['OK'] 
     }); 
     alert.present(); 
    }); 
}); 
ような何かを NgZone

constructor(private zone: NgZone) {} 

ChangeDetectorRefを使用して、角度変化検出更新ビューに通知する必要があります

またはChangeDetectorRef

constructor(private cdRef: ChangeDetectorRef) {} 

その後、

this.barcodeScanner.scan().then((barcodeData) => { 
    let alert = this.alertCtrl.create({ 
     title: 'Barcode scanned Successfully!', 
     subTitle: ''+barcodeData.text, 
     buttons: [{ 
     text: 'OK', 
     handler:() => { 
      this.showForm = true; 
      this.memberVo["barcodeId"] = barcodeData.text; 
      this.cdRef.detectChanges(); // this one 
     } 
     }] 
    }); 
    alert.present(); 
}, (err) => { 
    // An error occurred 
    console.log('barcode err--',err); 
    let alert = this.alertCtrl.create({ 
     title: 'Barcode scan Failed!', 
     subTitle: ''+err, 
     buttons: ['OK'] 
    }); 
    alert.present(); 
}); 

ドキュメント:

https://angular.io/docs/ts/latest/api/core/index/ChangeDetectorRef-class.html

https://angular.io/docs/ts/latest/api/core/index/NgZone-class.html

関連する問題