如何在ng-click中构造范围变量的名称。 例如,我在ng-repeat中有一个表格,其中名称是动态生成的。 我正在使用x-editable插件,因此在这种情况下,名称将创建一个名为{{box.key}} {{$ index}}
的范围变量<div ng-repeat="course in box.value track by $index">
<form editable-form name="{{box.key}}{{$index}}">
问题是如何动态访问变量。该按钮也在ng-repeate div中。
<button class="btn btn-primary" ng-click="{{box.key}}{{$index}}.$show()">Edit</button>
答案 0 :(得分:4)
您的表单在ng-repeat内声明,它为每个重复的div定义一个子范围。因此,要确保可以从控制器范围访问表单,而不仅仅是从子ng-repeat范围访问表单,请确保控制器定义表单的空对象(或数组):
$scope.forms = {};
并且生成的表单名称看起来像forms.form1
。例如:
<form editable-form name="forms.{{box.key}}{{$index}}">
然后在你看来:
ng-click="showForm(box.key, $index)"
并在您的控制器中:
$scope.showForm = function(key, index) {
var formName = key + index
$scope.forms[formName].$show();
}