我正在尝试根据数组的数量创建ng-form
。该数组包含元素 N 到 M,看起来与此类似。
[ { name: 'MyForm N'}, { name: 'MyForm N+1' }, ...., { name: 'MyForm M' }]
我使用 ng-repeat
指令来创建此表单列表。我想在范围对象 MyForms
内发布此表单列表 - 为此,我将重复的表单封装在另一个相应命名的表单中。
<div ng-form='MyForms'>
<div ng-repeat='form in forms'>
<div ng-form='form.name'>
<input type='text' name='Foo'>Bar</input>
</div>
</div>
</div>
显然,这个例子失败了,因为 ng-form
需要一个字符串,并且采用 form.name
比我想要的更字面意思,依次发布每个表单到 form.name
(覆盖以前的表单)。
我的问题是 - 为什么 form.name
会出现这种情况,但是我可以使用 $index
(来自 ng-repeat
)在完全相同的地方,我得到了我想要的结果(尽管没有用 form.name
表示 MyForms
)?我知道 ng-form
需要一个字符串,而不是一个表达式,但是 $index
不是表达式的一部分吗?
最佳答案
自 1.3.0-rc.3 起,可以将表达式指定为表单或输入元素的属性名称值。
所以这应该有效:
<div ng-form="MyForms">
<div ng-repeat="form in forms">
<div ng-form="{{form.name}}">
<input type="text" name="Foo">Bar</input>
</div>
</div>
</div>
这是添加支持的提交:link
关于javascript - 为什么我可以将表单绑定(bind)到 $index,但不能插入名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26336870/