2016-08-17 103 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' –

相關問題