मैं AngularUI की राउटिंग का उपयोग कर रहा हूं और मैं ऐसा करना चाहता हूं, ng-class="{active: current.state}"
लेकिन मैं अनिश्चित हूं कि इस तरह एक निर्देश में वर्तमान स्थिति का सही पता कैसे लगाया जाए।
जवाबों:
अपडेट करें:
यह उत्तर यूआई-राउटर के बहुत पुराने रिलीज के लिए था। अधिक हालिया रिलीज़ (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')}"
यदि आप यूआई-राउटर का उपयोग कर रहे हैं, तो $ स्टेट की कोशिश करें। ();
आप इसे इस तरह से उपयोग कर सकते हैं:
$state.is('stateName');
प्रति प्रलेखन:
$ state.is ... $ state.includes के समान, लेकिन केवल पूर्ण राज्य के नाम के लिए जाँच करता है।
कोणीय-यूआई, विशेष रूप से, मार्ग की जाँच करें: http://angular-ui.github.io/ui-utils/