Javascript 将值传递给AngularJS单击事件

Javascript 将值传递给AngularJS单击事件,javascript,angularjs,Javascript,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.n

假设我有一张这样的桌子:

<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>

{{object.name}
objectEdit
通知此处引用
objects
中的哪个条目的正确方法是什么


抱歉,AngularJS newb。

您可以将其传递到函数中:

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';
};

编辑:在上创建了一个演示

您可以使用预期的行为,如:

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

不在单击函数中传递对象

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

被调用函数上下文上的属性“item”总是可用的,即使您将元素传递给函数,因此我建议不要将对象作为参数传递,我想这不会太详细。

您将真正拥有
$scope.objectEdit
,而不仅仅是作用域中的方法。
<a href="#" class="btn btn-default" data-ng-click="objectEdit()">Edit</a>
$scope.objectEdit = function(){
   this.item // access selected item
}