Jaison Justus
Jaison Justus

Reputation: 2793

Passing multiple argument to ng-click method

In my code i like to pass to arguments to the function specified inside the ng-click attribute.

<div class="shout" ng-repeat="user in users">
 <p>{{user.name}}</p>
 <img src="media/images/delete.png" ng-click="deleteUser({{$index}},{{user._id}})"/>
</div>

and in the controller

function deleteUser(index, userId){...}

the parameter index is to remove the user from $scope.user and user._id to remove it from the mongodb. i am a newbee to angular js.

when i tried like this the deleteUser is not getting called. if i pass single argument it works like charm but when i pass more than its not working

Upvotes: 25

Views: 53315

Answers (1)

pkozlowski.opensource
pkozlowski.opensource

Reputation: 117370

You don't need {{ }} while specifying arguments to an event handlers (ng-click). The correct syntax would be ng-click="deleteUser($index, user._id):

<div class="shout" ng-repeat="user in users">
 <p>{{user.name}}</p>
 <img src="media/images/delete.png" ng-click="deleteUser($index, user._id)"/>
</div>

Here is a working plunker based on the code you've provided (check the console to see that click handler is working correctly): http://plnkr.co/edit/26A4Rj0FScPXYU7z92E6?p=preview

Upvotes: 49

Related Questions