
- Ionic 基礎教程
- Ionic - 首頁
- Ionic - 概述
- Ionic - 環境搭建
- Ionic CSS 元件
- Ionic - 顏色
- Ionic - 內容
- Ionic - 頁首
- Ionic - 頁尾
- Ionic - 按鈕
- Ionic - 列表
- Ionic - 卡片
- Ionic - 表單
- Ionic - 開關
- Ionic - 複選框
- Ionic - 單選按鈕
- Ionic - 範圍選擇器
- Ionic - 選擇器
- Ionic - 標籤頁
- Ionic - 網格
- Ionic - 圖示
- Ionic - 內邊距
- Ionic Javascript 元件
- Ionic - JS 動作面板
- Ionic - JS 背景
- Ionic - JS 內容
- Ionic - JS 表單
- Ionic - JS 事件
- Ionic - JS 頁首
- Ionic - JS 頁尾
- Ionic - JS 鍵盤
- Ionic - JS 列表
- Ionic - JS 載入
- Ionic - JS 模態框
- Ionic - JS 導航
- Ionic - JS 彈出框
- Ionic - JS 彈窗
- Ionic - JS 滾動
- Ionic - JS 側邊選單
- Ionic - JS 滑塊
- Ionic - JS 標籤頁
- Ionic 高階概念
- Ionic - Cordova 整合
- Ionic - AdMob
- Ionic - 相機
- Ionic - Facebook
- Ionic - 應用內瀏覽器
- Ionic - 原生音訊
- Ionic - 定位
- Ionic - 媒體
- Ionic - 閃屏
- Ionic 有用資源
- Ionic - 快速指南
- Ionic - 有用資源
- Ionic - 討論
Ionic - Javascript 彈出框
這是一個顯示在常規檢視上方的檢視。
使用彈出框
可以使用ion-popover-view元素建立彈出框。此元素應新增到HTML模板中,並且需要將$ionicPopover服務注入到控制器中。
有三種新增彈出框的方法。第一種是fromTemplate方法,它允許使用內聯模板。第二種和第三種新增彈出框的方法是使用fromTemplateUrl方法。
讓我們瞭解一下下面解釋的fromtemplate方法。
Fromtemplate 方法的控制器程式碼
.controller('DashCtrl', function($scope, $ionicLoading, $ionicPopover) { // .fromTemplate() method var template = '<ion-popover-view>' + '<ion-header-bar>' + '<h1 class = "title">Popover Title</h1>' + '</ion-header-bar>'+ '<ion-content>' + 'Popover Content!' + '</ion-content>' + '</ion-popover-view>'; $scope.popover = $ionicPopover.fromTemplate(template, { scope: $scope }); $scope.openPopover = function($event) { $scope.popover.show($event); }; $scope.closePopover = function() { $scope.popover.hide(); }; //Cleanup the popover when we're done with it! $scope.$on('$destroy', function() { $scope.popover.remove(); }); // Execute action on hide popover $scope.$on('popover.hidden', function() { // Execute action }); // Execute action on remove popover $scope.$on('popover.removed', function() { // Execute action }); })
如上所述,新增彈出框的第二種和第三種方法是使用fromTemplateUrl方法。兩種方法的控制器程式碼都相同,只是fromTemplateUrl的值不同。
如果HTML新增到現有模板中,則URL將是popover.html。如果要將HTML放置到templates資料夾中,則URL將更改為templates/popover.html。
下面解釋了這兩個示例。
fromTemplateUrl 的控制器程式碼
.controller('MyCtrl', function($scope, $ionicPopover) { $ionicPopover.fromTemplateUrl('popover.html', { scope: $scope }).then(function(popover) { $scope.popover = popover; }); $scope.openPopover = function($event) { $scope.popover.show($event); }; $scope.closePopover = function() { $scope.popover.hide(); }; //Cleanup the popover when we're done with it! $scope.$on('$destroy', function() { $scope.popover.remove(); }); // Execute action on hide popover $scope.$on('popover.hidden', function() { // Execute action }); // Execute action on remove popover $scope.$on('popover.removed', function() { // Execute action }); })
現在,我們將帶有模板的script新增到HTML檔案中,我們使用它來呼叫彈出框函式。
現有HTML檔案的HTML程式碼
<script id = "popover.html" type = "text/ng-template"> <ion-popover-view> <ion-header-bar> <h1 class = "title">Popover Title</h1> </ion-header-bar> <ion-content> Popover Content! </ion-content> </ion-popover-view> </script>
如果要建立一個HTML作為單獨的檔案,可以在templates資料夾中建立一個新的HTML檔案,並使用與上述示例中使用的相同程式碼,無需script標籤。
新建立的HTML檔案如下所示。
<ion-popover-view> <ion-header-bar> <h1 class = "title">Popover Title</h1> </ion-header-bar> <ion-content> Popover Content! </ion-content> </ion-popover-view>
我們需要做的最後一件事是建立一個按鈕,點選該按鈕將顯示彈出框。
<button class = "button" ng-click = "openPopover($event)">Add Popover</button>
無論我們選擇上述哪個示例,輸出都將始終相同。

下表顯示了可使用的$ionicPopover方法。
方法 | 選項 | 型別 | 詳情 |
---|---|---|---|
initialize(options) | scope, focusFirst, backdropClickToClose, hardwareBackButtonClose | 物件, 布林值, 布林值, 布林值 | Scope用於將自定義作用域傳遞給彈出框。預設為$rootScope。focusFirstInput用於自動聚焦彈出框的第一個輸入。backdropClickToClose用於在點選背景時關閉彈出框。hardwareBackButtonClose用於在按下硬體後退按鈕時關閉彈出框。 |
show($event) | $event | promise | 彈出框顯示完成後解析。 |
hide() | / | promise | 彈出框隱藏完成後解析。 |
remove() | / | promise | 彈出框移除完成後解析。 |
isShown() | / | 布林值 | 如果彈出框顯示則返回true,否則返回false。 |
廣告