AngularJs - Add / remove icon on ng-click in ng-repeat -


goal: on ng-repeat, initial 'isselected' array has icon. if item clicked after display, prior item isselected= false , has icon removed, current item has isselected=true , gets icon.

current html:

<a data-ng-repeat="style in webstyles" id="{{style.id}}" data-ng-click="changestyle(style.id)">        <!-- if item isselected = true -->                 <i class="fa fa-check fa-fw" id="skin-checked"></i>        <!-- end selected icon -->     {{style.name}}  </a> 

the controller:

  1. changestyle click event:

    $scope.changestyle = function (style) {     $scope.$emit('websitestylechange', style);    // todo: make isselected false, make item clicked isselected = true  };  
  2. data:

    $scope.webstyles = [     { name: "default", id: "style_0", isselected: true},     { name: "one", id: "style_1", isselected: false},     { name: "two", id: "style_2", isselected: false} ]; 

any ideas?

thanks ... .

you can loop through webstyles after each click , set isselected false except 1 clicked. example...

$scope.changestyle = function (style) {     angular.foreach($scope.webstyles, function (value, key) {         value.isselected = value.id === style ? true : false;     }); };  

then, show/hide icon, use ng-show directive..

<i class="fa fa-check fa-fw" id="skin-checked" ng-show="style.isselected"></i>  

Comments

Popular posts from this blog

php - SPIP: From Tag directly to an article -

jquery - isAjaxRequest always return false -

ruby on rails - In a controller spec, how to find a specific tag in the generated view? -