ionic2 AlertController范围问题

vis*_*hnu 0 ionic2 angular

我正在使用ionic2/angular2应用程序开发移动应用程序.我们必须调用另一个外部API来显示一个对话框.从另一个控件返回到我的应用程序后,AlertController范围不起作用.

    import {AlertController, Events } from 'ionic-angular';
    export class BalanceInquiryPage {
      constructor(){
        public alertCtrl: AlertController,
        public events: Events,
      }

      public balanceDetials(formdata): void {
          //fetch the device details from sqlite storage
          this.databaseService.getDeviceDetails().then((result) => {
             this.commonServices.getGeoLocation(this.deviceObj);
             setTimeout(() => {
               let geodevice = this.shareService.getDeviceDetails();
               let balanceenq = JSON.stringify({"mobileNumber":"9199403562", "expDate":"","cardDigits":""});         
              if (window.npciLib){
                 window.npciLib.balanceenq(balanceenq, function (data) {                  
                      let dataobj = JSON.parse(data);
                      if(dataobj.resp.result == 'SUCCESS'){
                        //this.events.publish('alert:presented', 'Success', 'Balance Enquiry Success.', MyaccountPage);
                        let alert = this.alertCtrl.create({
                          title: "Success",
                          subTitle: "balance",
                          buttons: [
                            {
                              text: 'Ok',
                              handler: () => {

                              }
                            }
                          ]
                        });
                        alert.present();
                      }
                      else{
                        //this.events.publish('alert:presented', 'Fail', 'There was an error in balance enquiry.', 'samePage');
                      }
                   }, function (error) {
                      console.log('error block-'+error);
                   });
               }
              }, 1000);
         }, (error) => {
           console.log('Error', error.err);
         });
        }
   }
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

未捕获的TypeError:无法读取null的属性'alertCtrl'

yur*_*zui 5

在这里使用箭头功能

window.npciLib.balanceenq(balanceenq, function (data) {  
Run Code Online (Sandbox Code Playgroud)

喜欢

window.npciLib.balanceenq(balanceenq, (data) => {  
Run Code Online (Sandbox Code Playgroud)

这种方式this将引用您的组件实例