我在离子,角度,打字稿方面遇到问题,我迷路了一点...

我想给我的文件调用一个外部函数,但出现错误:“未捕获(承诺):TypeError:未定义不是对象(正在评估'this.alertCtrl.create')弹出窗口”

这是我的主文件:

import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';

import { params } from '../../modules/params';

@Component({
  selector: 'page-app',
  templateUrl: 'app.html'
})
export class AppPage {

  params = new params();

  constructor(public navCtrl: NavController) {
    this.params.popup("Hello", "test");
  }

}


以及包含该功能的页面:

import { AlertController } from 'ionic-angular';

export class params {
    public alertCtrl: AlertController;
    constructor(){

    }

    popup(title, text){
        let alert = this.alertCtrl.create({
            title: title,
            subTitle: text,
            buttons: ['OK']
        });
        alert.present();
    }
}


我哪里错了?
非常感谢您的帮助。

最佳答案

我的朋友。

首先,您需要在包含要使用的函数的类中添加@Injectable()装饰器。例如:

import { Injectable } from '@angular/core';
import { AlertController } from 'ionic-angular';

@Injectable()
export class params {

    constructor(public alertCtrl: AlertController){

    }

popup(title, text){
    let alert = this.alertCtrl.create({
        title: title,
        subTitle: text,
        buttons: ['OK']
    });
    alert.present();
}
}


然后,只需将变量注入构造函数中,即可在页面中按如下所示调用它:

import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';

import { params } from '../../modules/params';

@Component({
  selector: 'page-app',
  templateUrl: 'app.html'
})
export class AppPage {

  constructor(public navCtrl: NavController, public params: params) {
    this.params.popup("Hello", "test");
  }

}


希望我能为您服务! =)

关于javascript - ionic 导入模块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49368072/

10-16 19:43