我有一个用例,我想通过单击Ion选项卡打开Ionic Modal。
我们的应用有4个固定ion-tabs
。其中一个选项卡目前转到评论表单,但它更适合作为模态(因此用户可以快速完成表单并返回到他们正在做的事情)。
模态通常附在按钮上。我试图在选项卡上使用ng-click
打开模态,类似于此demo,但没有运气。
是否可以使用ion-tab
打开ion-modal
?
答案 0 :(得分:3)
您可以在标签中添加“假”标签:
<ion-tabs class="tabs-royal tabs-striped">
<ion-tab title="A" href="#/tab/a">
<ion-nav-view name="a-tab"></ion-nav-view>
</ion-tab>
<ion-tab title="B" href="#/tab/b">
<ion-nav-view name="b-tab"></ion-nav-view>
</ion-tab>
<ion-tab title="C" href="#/tab/c">
<ion-nav-view name="c-tab"></ion-nav-view>
</ion-tab>
<ion-tab title="D" ng-click="openMyModal()">
</ion-tab>
</ion-tabs>
正如您所看到的,最后一个是空的:
<ion-tab title="D" ng-click="openMyModal()">
</ion-tab>
我们点击选项卡(ng-click),它调用方法openMyModal
。
由于我没有为该选项卡定义控制器,因此我将使用控制器作为抽象选项卡:
.state('tab', {
url: '/tab',
abstract: true,
templateUrl: 'tabs.html',
controller: 'TabsController'
})
这将是控制器TabsController:
.controller('TabsController', function($scope, $ionicModal){
$scope.modal = null;
$ionicModal.fromTemplateUrl('my-modal.html', {
scope: $scope,
animation: 'slide-in-up'
}).then(function(modal) {
$scope.modal = modal;
});
$scope.openMyModal = function()
{
$scope.modal.show();
};
$scope.closeModal = function() {
$scope.modal.hide();
};
})
如果您想看到它的实际效果,请查看此plunker。