我有一个AngularJS表单,我在其中使用ng-repeat根据另一个选择动态地构建表单的字段。我正在尝试动态生成模型名称,并且遇到了问题。
<div class="form-group" ng-repeat="parameter in apiParameters">
<label for="{{parameter.paramName}}" class="col-sm-2 control-label">{{parameter.paramTitle}}</label>
<div class="col-sm-3">
<input type="text" class="form-control" name="{{parameter.paramName}}" id="{{parameter.paramName}}" ng-model="formData.parameters.{{parameter.paramName}}" placeholder="{{parameter.paramTitle}}">
</div>
</div>
我需要的是评估为类似ng-model =“ formData.parameters.fooId”或ng-model =“ formData.parameters.barId”
上面的结果导致错误:错误:[$ parse:syntax]语法错误:令牌'{'是表达式[formData.parameters。{{parameter.paramName}}]]的第21列中的意外令牌,从[{{ parameter.paramName}}]。
在我的控制器中,我有:
$scope.formData = {};
$scope.formData = {
settings:
{
apiEndpoint: '',
method: 'get'
},
parameters: {}
};
我也尝试过ng-model =“ formData.parameters。[parameter.paramName]”(基于此问题,如何在AngularJS中设置动态模型名称?),但这并没有评估,并且无法设置ng -模型值。我不确定我要完成的目标是否可能。我假设我需要遍历控制器才能实现我想要的功能,但是任何帮助将不胜感激。
您只需要使用哈希键作为模型:
<div class="form-group" ng-repeat="parameter in apiParameters">
<label for="{{parameter.paramName}}" class="col-sm-2 control-label">{{parameter.paramTitle}}</label>
<div class="col-sm-3">
<input type="text" class="form-control" name="{{parameter.paramName}}" id="{{parameter.paramName}}" ng-model="formData.parameters[parameter.paramName]" placeholder="{{parameter.paramTitle}}">
</div>
</div>
还有许多其他方法,但是这种方法比其他方法更简单。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句