当前位置: 首页 > 面试题库 >

AngularJS形式的动态ng模型名称

段良弼
2023-03-14
问题内容

我有一个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>

还有许多其他方法,但是这种方法比其他方法更简单。



 类似资料:
  • 我有一个表单,如果复选框为false,则使用ng必需指令对文本输入进行验证。如果复选框为true,则该字段将被隐藏并且ng必需设置为false。 问题是,我在输入上还指定了一个用于验证的正则表达式,并且使用了ng模式角度指令。我遇到的问题是,如果用户填写了无效的电话号码,请选中该框以停用该输入(因此无需进一步验证),表单将不允许提交,因为它基于ng模式无效。 我试图通过添加一个ng change函

  • 问题内容: 我有一种形式,如果复选框为false,则使用ng-required指令对文本输入强制执行验证。如果复选框为true,则该字段被隐藏,并且ng- required设置为false。 问题是我还使用ng-pattern angular指令在输入上指定了用于验证的正则表达式。我遇到的问题是,如果用户填写了无效的电话号码,请选中该框以停用该输入(因此无需进一步验证),则该表单将不允许提交,因为

  • 问题内容: JSFiddle http://jsfiddle.net/vorburger/hyCTA/3/展示了我对AngularJS的(有效的)“ UI建模”想法;请注意,表单实际上并未在HTML模板中编码出来,而是由uimodel JSON驱动的(反过来描述了如何呈现/编辑数据模型): 麻烦的是,只要我的“模范”不是一个简单的属性,而是一个“路径”,然后我的括号动态密钥“绝招”已经不当然的工作

  • 问题内容: 如何在ng-repeat中使用动态名称命名表单? 我想动态命名每种形式。例如,将$ index添加到表单名称。我该如何实现?我在ng-repeat上尝试了ng-init,但是没有用。 问题答案: 您可以这样做: 编辑 : 您也可以使用,如下所示: 如果仅基于表单的有效性应用类,则可以将样式应用于自动添加的类,例如:

  • 问题内容: 我正在尝试从对象数组生成一组复选框。我的目标是使复选框动态地将其ng模型映射到将要提交到数组中的新对象的属性。 我的想法是 在此JSFiddle上可以看到,这不起作用: http://jsfiddle.net/GreenGeorge/NKjXB/2/ 有人可以帮忙吗? 问题答案: 这应该给您想要的结果: 这是工作正常的小伙伴:http ://plnkr.co/edit/ALHQtkji

  • 问题内容: JS小提琴 问题: 我的页面中有一个SELECT元素,其中填充了。它还具有一个具有默认值的。 当我更改值时,可以适应。但是下拉列表在启动时显示了一个空插槽,应该在其中选择了具有默认值的项目。 码 使用JS: 问题答案: 您可以在选项元素上使用ng- selected 指令。它表达了如果诚实将设置所选属性。 在这种情况下: 演示版