ionic 浮动框

最后更新于:2022-03-27 01:21:14

ionic 浮动框


$ionicPopover

$ionicPopover 是一个可以浮在app内容上的一个视图框。

可以实现以下功能点:

  • 在当前页面显示更多信息。
  • 选择一些工具或配置。
  • 在页面提供一个操作列表。

方法

fromTemplate(templateString, options)
或
fromTemplateUrl(templateUrl, options)

参数说明:

templateString: 模板字符串。

templateUrl: 载入的模板 URL。

options: 初始化选项。

实例

HTML 代码部分

<p>
<button ng-click="openPopover($event)">打开浮动框</button>
</p>
<script id="my-popover.html" type="text/ng-template">
<ion-popover-view>
<ion-header-bar>
<h1 class="title">我的浮动框标题</h1>
</ion-header-bar>
<ion-content>
Hello!
</ion-content>
</ion-popover-view>
</script>

fromTemplateUrl 方法

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() {
// 执行代码
});

}])

尝试一下 »

我们也可以把模板当作一个字符串,使用 .fromTemplate() 方法来实现弹框:

fromTemplate 方法

angular.module(ionicApp, [ionic])
.
controller( AppCtrl,[$scope,$ionicPopover,$timeout,function($scope,$ionicPopover,$timeout){

$scope.popover = $ionicPopover.fromTemplateUrl(my-popover.html, {
scope: $scope
});
// .fromTemplate() 方法
var template = <ion-popover-view><ion-header-bar> <h1 class="title">我的浮动框标题</h1> </ion-header-bar> <ion-content> Hello! </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();
};
// 清除浮动框
$
scope.$on($destroy, function() {
$
scope.popover.remove();
});
// 在隐藏浮动框后执行
$
scope.$on(popover.hidden, function() {
// 执行代码
});
// 移除浮动框后执行
$
scope.$on(popover.removed, function() {
// 执行代码
});

}])

尝试一下 »