Reputation: 13
I am using Angular.js to create a simple tabbed interface, but I would like to toggle a class of active
on whichever link I just clicked. Here is my code
<header>
<nav>
<a href ng:click="selected=1">Home</a>
<a href ng:click="selected=2">About</a>
<a href ng:click="selected=3">Work</a>
<a href ng:click="selected=4">Blog</a>
<a href ng:click="selected=5">Login</a>
</nav>
</header>
<article ng:hide="selected == 2 || selected == 3 || selected == 4 || selected == 5" >
<section>
<h2>1</h2>
</section>
</article>
<article ng:show="selected == 2">
<section>
<h2>2</h2>
</section>
</article>
<article ng:show="selected == 3">
<section>
<h2>3</h2>
</section>
</article>
<article ng:show="selected == 4">
<section>
<h2>4</h2>
</section>
</article>
<article ng:show="selected == 5">
<section>
<h2>5</h2>
</section>
</article>
I also made a CodePen. Any help would be greatly appreciated!
Upvotes: 1
Views: 2392
Reputation: 1613
Use the ng-class
directive:
<header>
<nav>
<a href ng:click="selected=1" ng-class="{active: selected == 1}">Home</a>
<a href ng:click="selected=2" ng-class="{active: selected == 2}">About</a>
<a href ng:click="selected=3" ng-class="{active: selected == 3}">Work</a>
<a href ng:click="selected=4" ng-class="{active: selected == 4}">Blog</a>
<a href ng:click="selected=5" ng-class="{active: selected == 5}">Login</a>
</nav>
</header>
Upvotes: 3