2014-10-31 25 views
6

Varsayılan olarak ionicPopover nasıl gösterilir, başka bir yere tıklamayın. Sayfa veya görünüm yüklendikten sonra popover'i gösterir misiniz?Varsayılan olarak ionicPopover gösterilmesi

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

}) 

cevap

9

Çok yakındınız.

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

Dolayısıyla, iş yapacak aşağıdaki gibi FEC:

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

Komple Örnek birlikte aşağıdaki şekilde IonicPopover resmi belgelerine göre popover.show() sözdizimi kodla ->here Bu jQuery dahil etmek zorunda kalmadan çalışır

+0

evet, çok çalışıyor, – user3117414

+0

teşekkürler @ user3117414'e yardımcı oldu. Lütfen cevabımı cevap olarak kabul et. –

+0

Ne yazık ki: Yakalanmayan Hata: [jqLite: nosel] Elemanların selektörlerle aranması jqLite tarafından desteklenmiyor! Bkz: http://docs.angularjs.org/api/angular.element –

2

:

$scope.$on('$viewContentLoaded',function(){ 
    $scope.popover.show(angular.element(document.querySelector('.class-of-host-control-of-popup'))); 
}); 
1
İyonik "utils'i" sınıfları (burada, DomUtil) kullanan

Bir exemple:

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

Gerçekten kötü ya da diğer yanıtlardan daha iyi. Doğrudan DOM sorgularını veya jQuery'yi kullanmanız yeterlidir.

Burada, popover öğesinin her zaman .target-host-item-class sınıfını kullanarak öğeyle hizalanmasını istiyorum.

İlgili konular