निर्देश के भीतर वर्तमान स्थिति का पता कैसे लगाया जाए


86

मैं AngularUI की राउटिंग का उपयोग कर रहा हूं और मैं ऐसा करना चाहता हूं, ng-class="{active: current.state}"लेकिन मैं अनिश्चित हूं कि इस तरह एक निर्देश में वर्तमान स्थिति का सही पता कैसे लगाया जाए।

जवाबों:


115

इसके अलावा, आप ui-sref- सक्रिय निर्देश का उपयोग कर सकते हैं :

<ul>
  <li ui-sref-active="active" class="item">
    <a href ui-sref="app.user({user: 'bilbobaggins'})">@bilbobaggins</a>
  </li>
  <!-- ... -->
</ul>

या फिल्टर: "stateName" | isStateऔर"stateName" | includedByState


146

अपडेट करें:

यह उत्तर यूआई-राउटर के बहुत पुराने रिलीज के लिए था। अधिक हालिया रिलीज़ (0.2.5+) के लिए, कृपया सहायक निर्देश का उपयोग करें ui-sref-activeयहाँ विवरण ।


मूल उत्तर:

अपने नियंत्रक में $ राज्य सेवा शामिल करें। आप इस सेवा को अपने दायरे में किसी प्रॉपर्टी को सौंप सकते हैं।

एक उदाहरण:

$scope.$state = $state;

फिर अपने टेम्पलेट्स में वर्तमान स्थिति प्राप्त करने के लिए:

$state.current.name

यह जाँचने के लिए कि क्या कोई राज्य वर्तमान सक्रिय है:

$state.includes('stateName'); 

यदि यह राज्य सम्मिलित है, तो भी यह विधि सही है, भले ही वह किसी नेस्टेड स्थिति का हिस्सा हो। यदि आप एक नेस्टेड अवस्था में थे user.details, और आपने जाँच की $state.includes('user'), तो यह सच होगा।

अपने वर्ग उदाहरण में, आप कुछ इस तरह करेंगे:

ng-class="{active: $state.includes('stateName')}"

3
उन राज्यों के बारे में क्या है जिनके पास पैरामीटर हैं?
ब्रैडली ट्रगर


25

यदि आप यूआई-राउटर का उपयोग कर रहे हैं, तो $ स्टेट की कोशिश करें। ();

आप इसे इस तरह से उपयोग कर सकते हैं:

$state.is('stateName');

प्रति प्रलेखन:

$ state.is ... $ state.includes के समान, लेकिन केवल पूर्ण राज्य के नाम के लिए जाँच करता है।


1

के उपयोग ui-sref सक्रिय है कि मेरे लिए काम किया निर्देश था:

<li ui-sref-active="{'active': 'admin'}">
    <a ui-sref="admin.users">Administration Panel</a>
</li>

जैसा कि 31 मई, 2016 को "tgrant59 टिप्पणी" लेबल के तहत यहां पाया गया।

मैं कोणीय-यूआई-राउटर v0.3.1 का उपयोग कर रहा हूं।


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