Hitesh Sharma
Hitesh Sharma

Reputation: 23

How can I override CSS dynamically with angularjs?

I have bootstrap tabs and I want to assign some css properties to the active tab based on the data received from server (color code for the respective data set). How can I override the css values for the border color using angularjs to the active tab?

Here is the HTML and CSS code:

<div class="tabbable tabs-left">
 <!--style for the tabs border -->
   <ul id='myTabs' class="nav nav-tabs" ng-style="{'border-right-color':[currentData.colorCode]}">
   <!-- Active tab -->
      <li ng-class="getTabClass(0)" ng-click="setActiveTab(0)" class="active"><a href="#tab0" data-toggle="tab">Set 1</a></li>
      <li ng-class="getTabClass(1)" ng-click="setActiveTab(1)" ><a href="#tab1" data-toggle="tab">Set 2</a></li>
      <li ng-class="getTabClass(0)" ng-click="setActiveTab(2)"><a href="#tab0" data-toggle="tab">Set 3</a></li>
      <li ng-class="getTabClass(1)" ng-click="setActiveTab(3)" ><a href="#tab1" data-toggle="tab">Set 4</a></li>
   </ul>

CSS Code:

.tabs-left>.nav-tabs .active>a, .tabs-left>.nav-tabs .active>a:hover, .tabs-left>.nav-tabs .active>a:focus {
border-color: #ddd transparent #ddd #ddd;
}
.nav-tabs>li.active>a, .nav-tabs>li.active>a:hover, .nav-tabs>li.active>a:focus {
}

.nav-tabs>li.active>a, .nav-tabs>li.active>a:hover, .nav-tabs>li.active>a:focus {
color: #555;
cursor: default;
background-color: #fff;
border: 1px solid #ddd;
border-bottom-color: transparent;
}
.nav-tabs>.active>a, .nav-tabs>.active>a:hover, .nav-tabs>.active>a:focus {
color: #555555;
background-color: #ffffff;
border: 1px solid #ddd;
border-bottom-color: transparent;
cursor: default;
}

Upvotes: 0

Views: 3080

Answers (1)

SeanCannon
SeanCannon

Reputation: 77986

Change

ng-style="{'border-right-color':[currentData.colorCode]}">

to

ng-style="{'border-right-color':'{{currentData.colorCode}}'}">

Demo : http://jsfiddle.net/aykw1ufe/

Upvotes: 1

Related Questions