在AngularJS中,如果需要使用ng-model绑定存储在另一个变量中的变量名,可以使用$parse服务来解决。$parse服务可以将字符串解析为可执行的表达式,并在作用域中进行求值。
下面是一个解决该问题的示例代码:
HTML模板:
JavaScript代码:
angular.module('myApp', [])
.controller('myCtrl', function($scope, $parse) {
// 初始化变量
$scope.variables = {
myVariable: 'Initial Value'
};
// 获取变量值
$scope.getVariable = function(variableName) {
var getter = $parse(variableName);
return getter($scope.variables);
};
// 设置变量值
$scope.setVariable = function(variableName, newValue) {
var setter = $parse(variableName).assign;
setter($scope.variables, newValue);
};
});
在上述代码中,我们在控制器中定义了一个名为variables
的对象,其中包含要绑定的变量。getVariable
函数接受一个变量名作为参数,并使用$parse服务解析变量名,获取变量的值。setVariable
函数接受一个变量名和一个新值作为参数,并使用$parse服务解析变量名,然后将新值分配给变量。
通过这种方式,我们可以在ng-model中使用getVariable
函数来绑定存储在另一个变量中的变量名。当用户输入新的值并点击“更新”按钮时,setVariable
函数将新值分配给变量。所有的变更都会自动反映在视图和模型中。
这种方法允许我们动态地绑定存储在另一个变量中的变量名,并且不需要在控制器中硬编码每个变量的绑定。