2016-08-17 57 views
4

我使用Ionic 2进行编程,并且我想在单击按钮时显示弹出警报。Ionic 2,如何正确使用警报

这是代码在我home.html的

<button (click)='openFilters()'>CLICK</button> 

在我home.ts

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

@Component({ 
    templateUrl: 'build/pages/home/home.html' 
}) 
export class HomePage { 
    constructor(nav: NavController, alertCtrl: AlertController) { 

    } 

    openFilters() { 
    let alert = this.alertCtrl.create({ 
     title: 'Low battery', 
     subTitle: '10% of battery remaining', 
     buttons: ['Dismiss'] 
    }); 
    alert.present(); 
    } 
} 

我读过一些关于这个论题计算器的问题,并试图像这样执行它:

openFilters() { 
    let alert:Alert = Alert.create({ 
     title: 'Low battery', 
     subTitle: '10% of battery remaining', 
     buttons: ['Dismiss'] 
    }); 
    this.nav.present(alert); 
    } 

我依然没有任何表现;我收到错误。

+0

您的项目中使用了哪种版本的Ionic?你可以通过在项目文件夹中执行'ionic info'来检查,并且会说'Ionic Framework Version'。我问这个问题的原因,是因为'Alerts'的创建方式已从版本'beta.10'改为'beta.11'。 – sebaferreras

+0

你或许应该告诉你得到了什么错误 – YakovL

+0

我离子信息: Cordove CLI:6.3.0 离子Framework版本:2.0.0-beta.11 离子CLI版本:2.0.0-beta.37 离子应用程序库版本:2.0.0-beta.20 操作系统:Windows 7 SP1 节点版本:v4.4.7 –

回答

9

确保导入此:

import {AlertController} from 'ionic-angular'; 

,并有如下代码:

constructor(private alertController: AlertController) { 

} 


openFilters() { 
    let alert = this.alertController.create({ 
     title: 'Example', 
     subTitle: 'Example subtitle', 
     buttons: ['OK'] 
    }); 

    alert.present(); 
} 

事情已经有测试版11变,它好像在在线文档尚未更新,您可以随时进入node_modules中的ionic-angular文件夹,并找到您正尝试使用的组件以获得更好的文档。

+0

好吧,它的作品,唯一的区别是我必须添加私人。这是为什么? –

+0

这是否意味着,我要使用的所有构造函数都必须是私有的? –

+0

你可以添加私人或公共,但在你的问题你没有添加任何。通过添加私有或公共的局部变量然后自动添加到类,这意味着你可以再调用'this.alertController' –