ng-click中的角度插值范围变量

时间:2015-05-20 21:07:17

标签: angularjs angularjs-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>

1 个答案:

答案 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();
}