2014-10-31 6 views
6

So zeigen Sie standardmäßig ionicPopover an, klicken Sie nicht oder auf ein anderes Ereignis. Sobald die Seite oder die Ansicht geladen ist, zeigen Sie das Popover?Wie ionicPopover standardmäßig angezeigt wird

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

}) 

Antwort

9

Sie waren sehr nah dran. Nach der offiziellen Dokumentation von IonicPopover, Die Syntax von popover.show() ist wie folgt:

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

Daher Code umschreiben als den Job tun folgt:

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

vollständige Beispiel, entlang mit Code ->here

+0

ja, es funktioniert, vielen Dank – user3117414

+0

Froh, es half @ user3117414. Bitte akzeptiere meine Antwort als Antwort. –

+0

Leider: Uncaught Error: [jqLite: nosel] Nachschlagen von Elementen über Selektoren wird von jqLite nicht unterstützt! Siehe: http://docs.angularjs.org/api/angular.element –

2

Dies funktioniert ohne jQuery mit einschließen:

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

Ein exemple, das Ionic "utils" Klassen verwendet (hier 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); 
    }); 

Nicht wirklich besser oder schlechter als andere Antworten. Vermeiden Sie einfach direkte DOM-Abfragen oder jQuery.

Hier möchte ich das Popover immer mit dem Element mit der Klasse .target-host-item-class ausgerichtet werden.