如何默认显示离子弹出窗口

时间:2014-10-31 07:43:02

标签: ionic-framework

如何默认显示ionicPopover,不要点击或任何其他事件。加载页面或视图后,显示popover?

cmr.controller('JoinMeeting', function($scope, $ionicPopover) {
    $ionicPopover.fromTemplateUrl('joinMrTips.html', {
    scope: $scope,
}).then(function(popover) {
    $scope.popover = popover;
});

$scope.$on('$viewContentLoaded',function(){
    $scope.popover.show();
});

})

3 个答案:

答案 0 :(得分:9)

你非常接近。根据IonicPopover的官方文档,popover.show()的语法如下:

  

show($ event)其中popover应在旁边对齐的$ event或target元素

因此,按如下方式重写代码将完成工作:

$scope.$on('$viewContentLoaded',function(){
    $scope.popover.show(".class-of-host-control-of-popup");
});

完整示例,以及代码 - > here

答案 1 :(得分:2)

无需包含jQuery即可运行:

$scope.$on('$viewContentLoaded',function(){
  $scope.popover.show(angular.element(document.querySelector('.class-of-host-control-of-popup')));
});

答案 2 :(得分:1)

使用Ionic“utils”类(此处为DomUtil)的示例:

MY_HASH = ->(key) { { 1=>0, 2=>42 }[key] || -1 }
MY_HASH[1]            #=> 0
MY_HASH[529326] #=> -1

并非比其他答案更糟或更好。简单地避免使用直接DOM查询或jQuery。

在这里,我希望popover始终使用类 var nodeClass = 'target-host-item-class'; var evtTarget = $event.target; var hostNode = ionic.DomUtil.getParentOrSelfWithClass(evtTarget, nodeClass); $ionicPopover.fromTemplateUrl('popover-template.html', { scope: $scope }).then(function(popover) { popover.show(hostNode); }); 与项目对齐。