दृश्यता AngularJs में छिपी हुई है?


80
<button id="tagBtnId" name="TagsFilter" ng-show="disableTagButton">Tags</button>

एनजी-शो लागू display: noneया display: blockसंपत्ति लेकिन मैं आवेदन करना चाहता हूं visibility: hiddenऔर visibility: visibleसंपत्ति।

जवाबों:


75

आप नीचे दिए अनुसार उपयोग ng-classया ng-styleनिर्देश कर सकते हैं

ng-class

यह myclassबटन को वर्ग जोड़ देगा जब केवल disableTagButtonसत्य होगा, यदि disableTagButtonगलत है तो myclassबटन से हटा देगा

अभिव्यक्ति पास ng-classएक स्ट्रिंग हो सकती है जो अंतरिक्ष सीमांकित वर्ग नामों, एक सरणी, या बूलियन मानों के लिए वर्ग नामों का एक नक्शा प्रस्तुत करती है।

1 - अंतरिक्ष सीमांकित वर्ग नाम

.. ng-class="{strike: deleted, bold: important, red: error}".. 

2 - एक सरणी

.. ng-class="[style1, style2, style3]".. 

स्टाइल 1, स्टाइल 2 और स्टाइल 3 सीएसएस कक्षाएं हैं जो अधिक जानकारी के लिए नीचे डेमो की जांच करती हैं।

2 - अभिव्यक्ति

.. ng-class="'my-class' : someProperty ? true: false".. 

यदि somePropertyमौजूद है तो .my-classउसे हटा दें।

यदि सीएसएस श्रेणी का नाम ng-classडैश अलग है तो आपको इसे स्ट्रिंग के रूप में परिभाषित करने की आवश्यकता है जैसे कि .. ng-class="'my-class' : ..आप इसे स्ट्रिंग के रूप में परिभाषित कर सकते हैं या नहीं.. ng-class="myClass : ..

एनजी-क्लास डेमो

<button id="tagBtnId" name="TagsFilter" ng-class="{'myClass': disableTagButton}">Tags</button>

<style>
   .myClass {
       visibility: hidden
    }
</style>

ng-style

एक्सप्रेशन [एनजी-शैली के ][2]उत्थान को एक ऐसी वस्तु से गुजारते हैं जिसकी कुंजी सीएसएस शैली के नाम हैं और मान उन सीएसएस कुंजी के लिए संबंधित मान हैं।

EX:

.. ng-style="{_key_ : _value_}" ...=> संपत्ति मूल्य निर्धारित _key_करते समय सीएसएस संपत्ति है _value_। पूर्व =>.. ng-style="{color : 'red'}" ...

यदि आपका ऐसा कुछ उपयोग कर रहा है, background-colorतो यह किसी वस्तु की वैध कुंजी नहीं है, तो इसे .. ng-style="{'background-color' : 'red'}" ...एनजी-क्लास के रूप में उद्धृत किया जाना चाहिए ।

<button id="tagBtnId" name="TagsFilter" ng-style="disableTagButton">Tags</button>

तो आपके disableTagButtonजैसा होना चाहिए

$scope.disableTagButton = {'visibility': 'hidden'}; // then button will hidden.

$scope.disableTagButton = {'visibility': 'visible'}; // then button will visible.

इसलिए यू बटन की दृश्यता को बदलकर बदल सकता है $scope.disableTagButton

या आप इसे इनलाइन अभिव्यक्ति के रूप में उपयोग कर सकते हैं,

ng-style="{'visibility': someVar ? 'visible' : 'hidden'}"

है someVarसच तो दृश्यता सेट करने के लिए मूल्यांकन करता है visibleकरने के लिए नहीं तो दृश्यता सेट hidden


मैंने "दृश्यता: दृश्यमान" कैसे बदला। उसके लिए मुझे नई कक्षा बनानी होगी?
चिराग

बस चर को गलत पर सेट करें, इस तरह से कक्षा को हटा दिया जाता है
माइकल

सेट disableTagButtonकरने के लिए falseफिर स्वचालित रूप से वर्ग myClassबटन से निकाल देंगे तो visibility: hiddenनिकाल देंगे
Kalhan.Toress

प्रदर्शन कैसे सेट करें: सच्ची झूठी स्थिति के बिना ब्लॉक करें? जैसे एनजी-शैली = "{" someDivId ", 'डिस्प्ले': 'ब्लॉक'}"। मैं HTML नहीं js में ऐसा करना चाहता हूं।
मईली

50

आप उपयोग कर सकते हैं ng-style। सरल उदाहरण:

<div ng-style="{'visibility': isMenuOpen?'visible':'hidden'}">...</div>

रनटाइम के समय, शैली में परिवर्तन होता isMenuOpenहै।

  • जब isMenuOpenहै सच , तो आपको style="visibility: visible"
  • जब isMenuOpenहै झूठे , तो आपको style="visibility: hidden"

प्रदर्शन कैसे सेट करें: सच्ची झूठी स्थिति के बिना ब्लॉक करें? जैसे एनजी-शैली = "{" someDivId ", 'डिस्प्ले': 'ब्लॉक'}"। मैं HTML नहीं js में ऐसा करना चाहता हूं।
मईली

1
@Milee यह html में है। उदाहरण:<div ng-style="{'visibility': isMenuOpen?'visible':'hidden'}">...</div>
AlikElzin-kilaka

आप लिख सकते हैं: ng-style="{visibility: isMenuOpen?'visible':'hidden'}" उद्धरण केवल यौगिक शब्दों के साथ उपयोगी हैं। अन्यथा, आप बिना उद्धरण के सीएसएस गुणों के लिए CAML सिंटैक्स का उपयोग कर सकते हैं।
मैल

15

यहाँ एक सरल निर्देश है जो दृश्यता को छिपे या दृश्यमान (लेकिन पतन नहीं) के लिए सेट करता है:

.directive('visible', function() {

    return {
        restrict: 'A',

        link: function(scope, element, attributes) {
            scope.$watch(attributes.visible, function(value){
            element.css('visibility', value ? 'visible' : 'hidden');
        });
    }
  };
})

उपयोग:

<button visible='showButton'>Button that can be invisible</button>


मुझे निर्देशन दृष्टिकोण पसंद है, इस मामले में यह ओवरकिल हो सकता है। लेकिन मुझे अभी भी यह पसंद है :)
Raz0rwire

2
कोणीय टीम को सिर्फ एक ng-visibleनिर्देश जोड़ना चाहिए ।
इहार्त्स्कर्प

12

या यदि आप बूटस्ट्रैप का उपयोग कर रहे हैं, तो invisibleकक्षा का उपयोग करें

ng-class='{"invisible": !controller.isSending}'

बूटस्ट्रैप का उपयोग करने वाले लोगों के लिए सबसे सरल और सबसे सुंदर समाधान है।
सूहीब बेस ने 15:24 पर

2

आपको अपने मामले में ngClass या ngStyle का उपयोग करना चाहिए :

<button id="tagBtnId" name="TagsFilter" 
    ng-class="{'button-hidden':!disableTagButton}">Tags</button>

और यह सीएसएस :

.button-hidden{
   visibility: hidden;
}

1

आप अपने html पृष्ठ में रेंडर नहीं करते हैं, तो आप एनजी का उपयोग क्यों नहीं करते हैं । मुझे लगता है कि आप इसका उपयोग करते हैं:

<button id="tagBtnId" name="TagsFilter" ng-if="disableTagButton">Tags</button>

3
यह प्रदर्शन के समान है; कोई नहीं, लेकिन आवश्यक शैली दृश्यता है: छिपी हुई। जो है ही नहीं।
यूरी कोज़लोव

मैं इस एनजी-अगर कार्यक्षमता चाहता था क्योंकि मैं दृश्यता को छिपाना चाहता था और तत्व को html में नहीं दिखाना चाहिए। सही समाधान।
किरण चौधरी

1

ओवरराइडिंग के बारे में अनुभाग देखें https://docs.angularjs.org/api/ng/directive/ngShow

आपको बस hg-hide-animateतत्व को कक्षा आवंटित करना है

/* style your element(s) at least for selector.ng-hide */
/* in this case your selector is #tagBtnId */
#tagBtnId.ng-hide {
  /*visibility:hidden;*/
  opacity: 0;
  transition: opacity 1s ease-in;
}
#tagBtnId {
  /*visibility:initial;*/
  opacity: 1;
  transition: opacity 1s ease-out;
}

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.