मैं jQuery
पृष्ठभूमि के साथ एंगुलरजेएस में नया हूं, और अभी भी कोणीय सोच में प्रवेश करने का प्रयास कर रहा हूं। मैं जैसे कई button
रों है:एंगुलरजेएस पारस्परिक अनन्य तरीके से कई बटनों पर कक्षा लागू करता है
<button class="btn active">btn1</button>
<button class="btn">btn2</button>
...
<button class="btn">btnN</button>
jQuery
साथ
मेरा लक्ष्य पूरा करने के लिए, कि केवल एक ही button
समय पर active
class
के लिए मैं
करना होगा jQuery
$(".btn").on('click', function(){
$(this).siblings().removeClass('active')
.end()
.addClass('active');
});
है,
सीएसएस
.active{ ... }
लेकिन मुझे एंगुलर में ऐसा करने के लिए सामान्य तरीका नहीं मिला। मुझे 3 बटनों का समाधान मिला, लेकिन यह अशिष्ट हो जाता है, खासकर अगर मेरे पास मेरे आवेदन में route
है।
विशेष रूप से, अब समाधान मैं उपयोग कर रहा हूँ है:
मार्कअप
<li class="start" ng:click="selected = 1" ng-class="{active: selected == 1}">
<a href="#contenuti> </a>
</li>
<li class="start" ng:click="selected = 2" ng-class="{active: selected == 2}">
<a href="#utenti> </a>
</li>
<li class="start" ng:click="selected = 3" ng-class="{active: selected == 3}">
<a href="#messaggi> </a>
</li>
नियंत्रक में (बूटस्ट्रैप सेटिंग्स के लिए)
switch($location.path()){
case '/contenuti/plot':
$scope.selected = 1;
break;
case '/utenti':
$scope.selected = 2;
break;
case '/messaggi':
$scope.selected = 3;
break;
}
जो एक है समाधान जो मैं वास्तव में प्यार नहीं करता, मुझे नहीं लगता कि वास्तव में एक अच्छा समाधान है। मदद के लिए अग्रिम धन्यवाद।
jQuery समाधान फिडल: http://jsfiddle.net/HS4d6/
AngularJS डेटा पर ही आधारित है। * आमतौर पर * आपको डोम के बारे में भूल जाना चाहिए। – zsong