我在离子,角度,打字稿方面遇到问题,我迷路了一点...
我想给我的文件调用一个外部函数,但出现错误:“未捕获(承诺):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/