javascript - Angular js ng-class false condition not working in ng-repeat -
i want highlight li if radio selected. inside ng-repeat, ng-class true condition working, false condition not working, please check code below
<div ng-init="friends = [ {name:'john', age:25, gender:'boy'}, {name:'jessie', age:30, gender:'girl'}, {name:'johanna', age:28, gender:'girl'}, {name:'joy', age:15, gender:'girl'}, {name:'mary', age:28, gender:'girl'}, {name:'peter', age:95, gender:'boy'}, {name:'sebastian', age:50, gender:'boy'}, {name:'erika', age:27, gender:'girl'}, {name:'patrick', age:40, gender:'boy'}, {name:'samantha', age:60, gender:'girl'} ]"> <ul class="example-animate-container"> <li class="animate-repeat" ng-repeat="friend in friends" ng-class="{true:'hightlight',false:''}[radiobox==friend.name]"> <input type="radio" name="friends" ng-model="radiobox" value="{{friend.name}}" /> </li> </ul> </div>
this because ng-repeat create new child scope each li element, every li element has own radiobox value in own scope.
for more detail, read understanding-scopes.
you avoid problem having . in ng-model, example using model.radiobox this:
<li class="animate-repeat" ng-repeat="friend in friends" ng-class="{true:'hightlight',false:''}[model.radiobox==friend.name]"> <input type="radio" name="friends" ng-model="model.radiobox" value="{{friend.name}}" /> </li> and in controller, initialize model beforehand:
$scope.model = { radiobox: undefined }; example plunker: http://plnkr.co/edit/tcorxhszytn2kcxf2m3g?p=preview
Comments
Post a Comment