2014-10-31 196 views
6

如何默认显示ionicPopover,请勿点击或任何其他事件。一旦页面或视图加载,显示弹出?默认情况下如何显示ionicPopover

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(); 
}); 

}) 

回答

9

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

show($event) where The $event or target element which the popover should align itself next to

因此,重写代码如下将做的工作:

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

完整的例子,沿使用代码 - >here

+0

是的,它的工作,非常感谢 – user3117414 2014-11-06 03:13:09

+0

很高兴它帮助@ user3117414。请接受我的答复作为答案。 – 2014-11-06 03:38:20

+0

悲哀:未捕获错误:[jqLit​​e:nosel] jqLit​​e不支持通过选择器查找元素!请参阅:http://docs.angularjs.org/api/angular.element – 2015-04-22 10:17:11

2

这工作不必包括jQuery的:

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

的,它使用离子“utils的”类(在这里,DomUtil)为例:

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); 
    }); 

不是真的恶化或比其他更好的答案。简单地避免使用直接DOM查询或jQuery。

在这里,我希望弹出窗口始终与使用类.target-host-item-class的项目对齐。

相关问题