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();
}
如何在 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();
}