2013-10-16 49 views
2

假设我有一个像这样的表:传递一个值AngularJS单击事件

<tbody> 
    <tr data-ng-repeat="object in objects"> 
     <td><input type="checkbox" value="{{object.id}}" data-ng-checked="object.checked" data-ng-mode="object.checked"/></td> 
     <td>{{object.name}}</td> 
     <td><a href="#" class="btn btn-default" data-ng-click="objectEdit()">Edit</a> <a href="#" class="btn btn-default">View</a></td> 
    </tr> 
</tbody> 

什么是有objectEdit通知该条目objects正在这里引用的正确方式?

对不起,AngularJS newb。

回答

8

编辑:创建了plunker演示。

您可以使用像预期的行为:

<a href="#" class="btn btn-default" data-ng-click="objectEdit(object)">Edit</a> 

然后在范围内有这种方法

$scope.objectEdit = function(item){ 
} 

或者

,而没有经过对象的点击功能

<a href="#" class="btn btn-default" data-ng-click="objectEdit()">Edit</a> 

和范围:

$scope.objectEdit = function(){ 
    this.item // access selected item 
} 

在调用的函数方面的性能“项”始终可用,即使您通过要素的功能,所以我会建议没有通过对象作为参数,它我猜不太详细。

+0

你真的会拥有'$ scope.objectEdit',而不仅仅是范围内的方法。 – vittore

3

你可以将它传递给函数:

ng-click="objectEdit(object)" 

从我原来的答复扩大(抱歉,很短,因为它回答了我的手机),你可以在一个循环的方式传递到函数的对象。此外,有时它更有意义,特别是如果你有一个数组,在当你遍历它在ng-repeat索引通路:

ng-click="objectEdit($index)" 

这使我们能够拼接或编辑数组中的元素:

$scope.objectEdit = function(i) { 
    $scope.objects.splice(i,1); // if we want to remove it in a delete function 
    $scope.objects[i].name = 'new name'; 
}; 
相关问题