2015-10-14 25 views
5

मैं पॉपओवर-ओपन-ओपन डायरेक्टिव का उपयोग करके ui.bootstrap पॉपओवर नहीं दिखाना चाहता हूं। उदाहरण के लिए, टेम्पलेट में के लिए:ui.bootstrap popover-is-open ठीक से काम नहीं करता है

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

और नियंत्रक में:

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

plunkr

देखें मैं उम्मीद कर रहा हूँ कि पॉपओवर खोला जा कभी नहीं करना चाहिए, लेकिन यह इस पर क्लिक करने पर ही खुलता है। ऐसा लगता है कि पॉपओवर-ओपन केवल पहले कोणीय संकलन को प्रभावित करता है। कोई विचार?

अपडेट: वास्तव में, मैं कुछ मामलों में केवल पॉपओवर नहीं दिखाना चाहता, अन्य मामलों में इसे दिखाया जाना चाहिए। उदाहरण के लिए, मेरे पास डाउनलोड-डायलॉग पॉपओवर है और मैं इसे केवल तभी दिखाना चाहता हूं जब फ़ाइल का आकार कुछ सीमा से अधिक हो।

उत्तर

5

popover-is-open केवल प्रारंभिक व्यवहार के लिए है, यानी यदि यह true तक पहुंचता है, तो पॉपओवर तुरंत क्लिक के बिना खुलता है। यदि आप अपने प्लंकर में isOpen से true का मान बदलते हैं, तो आप देखते हैं कि (my example plunkr)।

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

सवाल अद्यतन के लिए अद्यतन::

तुम क्या चाहते popover-enable विशेषता है

आप स्थिर isOpen के बजाय popover-enable विशेषता में किसी भी बूलियन अभिव्यक्ति का मूल्यांकन करने के लिए स्वतंत्र हैं हमेशा जो आपके उदाहरण में false तक पहुंचाता है।

मैं एक advanced plunkr बनाई है, जिसे दिखाने के लिए:

<input type="text" ng-model="downloadSize"> 
<button class="fa fa-link add-link" 
uib-popover="popover" 
popover-enable="isOpen()">Show popover</button> 
नियंत्रक कोड

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

आप एक नया पाठ बॉक्स जहां आप डाउनलोड आकार अनुकरण करने के लिए एक नंबर दर्ज कर सकते है साथ

। जब यह > 100 हो जाता है, तो पॉपअप सक्षम हो जाएगा। इस संपत्ति

+0

आप सही हैं, लेकिन अगर मैं कुछ मामलों में केवल पॉपओवर नहीं खोलना चाहता हूं तो क्या होगा? उदाहरण के लिए, मेरे पास संवाद डाउनलोड है और मैं इसे केवल तभी दिखाना चाहता हूं जब फ़ाइल का आकार बड़ा हो, उदाहरण के लिए, 100 एमबी? –

+0

आप 'पॉपओवर-सक्षम' विशेषता के लिए किसी भी बुलियन स्थिति का मूल्यांकन करने के लिए स्वतंत्र हैं। मैं एक उदाहरण के साथ अपना जवाब अपडेट कर दूंगा। – Desty

1

उपयोग

$scope.$apply(function() { 

$scope.isOpen = false;  

}); 

विधि popover-is-open मूल्य आप popover-trigger="none" या शायद popover-trigger="'none'" सेट करना होगा कण। यह docs

में कहते हैं 'कोई नहीं' ट्रिगर का उपयोग आंतरिक ट्रिगर (रों) को निष्क्रिय कर देगा, एक तो उपयोग कर सकते हैं पॉपओवर-है-खुला विशेषता विशेष रूप से दिखाने के लिए और पॉपओवर को छिपाने के लिए।

2

लागू करने के क्रम में खुला राज्य संभाल करने में के लिए

संबंधित मुद्दे