ionic 平台
$ionicPlatform
$ionicPlatform 用来检测当前的平台,以及诸如在PhoneGap/Cordova中覆盖Android后退按钮。
方法
onHardwareBackButton(callback)
有硬件的后退按钮的平台,可以用这种方法绑定到它。
参数 | 类型 | 详情 |
---|---|---|
callback | function | 当该事件发生时,触发回调函数。 |
offHardwareBackButton(callback)
移除后退按钮的监听事件。
参数 | 类型 | 详情 |
---|---|---|
callback | function | 最初绑定的监视器函数。 |
registerBackButtonAction(callback, priority, [actionId])
注册硬件后退按钮动作。当点击按钮时,只有一个动作会执行,因此该方法决定了注册的后退按钮动作具有最高的优先级。
例如,如果一个上拉菜单已经显示,后退按钮应该关闭上拉菜单,而不是返回一个页面视图或关闭一个打开的模型。
参数 | 类型 | 详情 |
---|---|---|
callback | function | 当点击返回按钮时触发,如果该监视器具有最高的优先级。 |
priority | number | 仅最高优先级的会执行。 |
actionId(可选) | * | 该id指定这个动作。默认:一个随机且唯一的id。 |
返回值: 函数, 一个被触发的函数,将会注销 backButtonAction。
ready([callback])
设备准备就绪,则触发一个回调函数。
参数 | 类型 | 详情 |
---|---|---|
callback(可选) | function= | 触发的函数。 |
返回: promise对象, 对象被构造 成功后得到解析。
ionic 浮动框
$ionicPopover
$ionicPopover 是一个可以浮在app内容上的一个视图框。
实例
【HTML 代码】
【JavaScript 代码】
angular.module('ionicApp', ['ionic'])
.controller( 'AppCtrl',['$scope','$ionicPopover','$timeout',function($scope,$ionicPopover,$timeout){
$scope.popover = $ionicPopover.fromTemplateUrl('my-popover.html', {
scope: $scope
});
// .fromTemplateUrl() 方法
$ionicPopover.fromTemplateUrl('my-popover.html', {
scope: $scope
}).then(function(popover) {
$scope.popover = popover;
});
$scope.openPopover = function($event) {
$scope.popover.show($event);
};
$scope.closePopover = function() {
$scope.popover.hide();
};
// 清除浮动框
$scope.$on('$destroy', function() {
$scope.popover.remove();
});
// 在隐藏浮动框后执行
$scope.$on('popover.hidden', function() {
// 执行代码
});
// 移除浮动框后执行
$scope.$on('popover.removed', function() {
// 执行代码
});
}])
尝试一下 »
ionic 对话框
$ionicPopup
ionic 对话框服务允许程序创建、显示弹出窗口。
$ionicPopup 提供了3个方法:alert(), prompt(),以及 confirm() 。
实例
【HTML 代码】
【JavaScript 代码】
angular.module('mySuperApp', ['ionic'])
.controller('PopupCtrl',function($scope, $ionicPopup, $timeout) {
// Triggered on a button click, or some other target
$scope.showPopup = function() {
$scope.data = {}
// 自定义弹窗
var myPopup = $ionicPopup.show({
template: '',
title: 'Enter Wi-Fi Password',
subTitle: 'Please use normal things',
scope: $scope,
buttons: [
{ text: 'Cancel' },
{
text: 'Save',
type: 'button-positive',
onTap: function(e) {
if (!$scope.data.wifi) {
// 不允许用户关闭,除非输入 wifi 密码
e.preventDefault();
} else {
return $scope.data.wifi;
}
}
},
]
});
myPopup.then(function(res) {
console.log('Tapped!', res);
});
$timeout(function() {
myPopup.close(); // 3秒后关闭弹窗
}, 3000);
};
// confirm 对话框
$scope.showConfirm = function() {
var confirmPopup = $ionicPopup.confirm({
title: 'Consume Ice Cream',
template: 'Are you sure you want to eat this ice cream?'
});
confirmPopup.then(function(res) {
if(res) {
console.log('You are sure');
} else {
console.log('You are not sure');
}
});
};
// alert(警告) 对话框
$scope.showAlert = function() {
var alertPopup = $ionicPopup.alert({
title: 'Don\'t eat that!',
template: 'It might taste good'
});
alertPopup.then(function(res) {
console.log('Thank you for not eating my delicious ice cream cone');
});
};
});
尝试一下 »