javascript - Angular: ng-click only on subset of elements inside a ng-repeat -
i'm using angular; have have ng-repeat loop i'd make elements clickable. following:
<div ng-repeat="item in itemlist"> <span ng-class="{ 'interactive' : item.clickable }" ng-click="dosomething(item)"> .... </span> </div>
where dosomething in controller like
$scope.dosomething = function(item) { if (!item.clickable) return; /* stuff */ };
this works, fear if of elements not clickable setting lot of useless handlers slow down page. case ? if so, there way set ng-click
attribute needed, i.e. elements such item.clickable === true
?
take @ this
script
angular.module('main', []); // main controller function controller($scope) { $scope.itemlist = [{ clickable: true, id:1, name: "abc-name" }, { clickable: false, id:2, name: "xyz-name" }, { clickable: true, id:3, name: "lmn-name" }]; $scope.dosomething = function(item) { console.log(item); } }
html
<div class="container" ng-app="main" ng-controller="controller"> <div ng-repeat="item in itemlist"> <span ng-class="{ 'interactive' : item.clickable }" ng-click="!item.clickable||dosomething(item)">{{item.name}} </span> </div> </div>
Comments
Post a Comment