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
}