2015-10-14 19 views
5

Ben pop-off-açık yönergesi kullanarak ui.bootstrap popover göstermek istemiyorum. şablonda Örneğin,: ui.bootstrap popover-is-open düzgün çalışmıyor

<button class="fa fa-link add-link" 
    uib-popover="popover" 
    popover-is-open="isOpen"> Show popover </i> 

Ve denetleyicisi

:

angular.module('demoModule').controller('PopoverDemoCtrl', function ($scope) { 
    $scope.isOpen = false;  
}); 

ben popover açılması asla gerektiğini bekliyorum plunkr

Bkz ama üzerinde tıklama açılır. Popover-açık-açık sadece ilk açısal derleme etkiler. Herhangi bir fikir?

upd: Aslında, yalnızca bazı durumlarda popover göstermemek istiyorum, diğer durumlarda, gösterilmeli. Örneğin, download-dialog popover'ım var ve sadece dosyanın boyutu bir sınırdan büyükse bunu göstermek istiyorum.

cevap

5

popover-is-open yalnızca başlangıç ​​davranışı içindir, yani true'a dönüştüğünde, popover bir tıklama yapmadan bile anında açılır. isOpen değerini plunkr öğenizde true olarak değiştirirseniz, bunu görüyorsunuz (my example plunkr). sorusu güncelleme için

<button class="fa fa-link add-link" 
uib-popover="popover" 
popover-enable="isOpen">Show popover</button> 

Güncelleme: Ne istiyorsun

popover-enable niteliktir

yerine statik isOpen arasında popover-enable özelliğinde herhangi boolean ifadeyi değerlendirmek özgürdürler daima hangi örneğinizde false'a dönüşür.

Bunu göstermek için bir advanced plunkr oluşturduk: Eğer indirme boyutunu simüle etmek için bir numara girebilirsiniz yeni bir metin kutusu var kontrolör kodu

$scope.isOpen = function() { return $scope.downloadSize > 100; } 

ile

<input type="text" ng-model="downloadSize"> 
<button class="fa fa-link add-link" 
uib-popover="popover" 
popover-enable="isOpen()">Show popover</button> 

. > 100 olduğunda, açılır pencere açılır. açık durumunu işlemek amacıyla bu özelliği

+0

Haklısınız, ama sadece bazı durumlarda popover açmak istemiyorsanız? Örneğin, indirme iletişimim var ve sadece dosyanın boyutu 100 mb'den daha büyükse göstermek istiyorum. –

+0

'Popover-enable' özniteliği için herhangi bir boole koşulunu değerlendirmekte serbestsiniz. Cevabımı bir örnekle güncelleyeceğim. – Desty

1

Kullanım

$scope.$apply(function() { 

$scope.isOpen = false;  

}); 

yöntemi popover-trigger="none" ya da belki popover-trigger="'none'" ayarlamalısınız popover-is-open değeri katiyen. iç tetiği (ler) devre dışı bırakır 'none' tetiği kullanarak docs

söylediği gibi, bir sonra kullanabilirsiniz popover-is-açık münhasıran gösterip popover gizlemek için özellik.

2

uygulanması için