I am using AngularJS along with Twitter Bootstrap and I want to make two radio buttons look like normal Bootstrap buttons. I found this example on jsFiddle and after applying it to my case everything looks fine but it’s not working correctly.
I want to bind the radio buttons to a model in Angular. Here’s my code:
<div class="btn-group btn-group-lg btn-group-justified" data-toggle="buttons">
<label class="btn btn-default">
<input type="radio" name="isMad" ng-model="isMad" ng-value="false" /> No
</label>
<label class="btn btn-default">
<input type="radio" name="isMad" ng-model="isMad" ng-value="true" /> Yes
</label>
</div>
<h1>
I am mad: {{ isMad }}
</h1>
And here’s the result of clicking on the “No” (radio) button:
So, the model is not bound at all. When I remove the data-toggle attribute from the button group, everything works correctly but the radio buttons are visualized just on top of the Bootstrap buttons like in this picture:
What should I do in order to have Bootstrap buttons looking like these in the first picture and working correctly with AngularJS model binding like these in the second one?
3
Answers
Coding wise its correct. seems like you have not use proper Angulerjs version. which version u r using ?
try with 1.3
Here’s how I’ve done it on a previous project with a custom directive for handling scope. Using a custom directive with an isolate scope in this way is optional. It should still work for you using ng-controller – the difference is setting up the radio buttons in the controller not the html then rendering using
ng-repeat
. (working Plnkr)radius.html
radius.directive.js
The body of index.html
i guess you are not the only one that is mad about this issue. Currently I am facing the same problem.
Let me show you my workaround:
The key-point to understand is to remove the
data-toggle="buttons"
which adds additional JavaScript logic that causes the error. And then hide the check-box with theclass="hide"
in the same input which then sets the active state “manually” according to the value of your backing model object.Hope this helps!