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:
changestyle click event:
$scope.changestyle = function (style) { $scope.$emit('websitestylechange', style); // todo: make isselected false, make item clicked isselected = true };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
Post a Comment