Angular 在 ng-click 中插入作用域变量

Angular interpolate scope variable in ng-click

如何在 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>

您的表单在 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();
}