Javascript 为什么我可以将表单绑定到$index,但不能插入名称?

Javascript 为什么我可以将表单绑定到$index,但不能插入名称?,javascript,angularjs,Javascript,Angularjs,我试图基于数组的填充创建ng表单s。该数组包含元素N到M,看起来与此类似 [ { name: 'MyForm N'}, { name: 'MyForm N+1' }, ...., { name: 'MyForm M' }] 我正在使用ng repeat指令创建此表单列表。我想在scope对象MyForms中发布此表单列表-为此,我将重复的表单封装在另一个相应命名的表单中 <div ng-form='MyForms'> <div ng-repeat='form in f

我试图基于数组的填充创建
ng表单
s。该数组包含元素N到M,看起来与此类似

[ { name: 'MyForm N'}, { name: 'MyForm N+1' }, ...., { name: 'MyForm M' }]
我正在使用
ng repeat
指令创建此表单列表。我想在scope对象
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
)并得到我想要的结果(尽管
MyForms
没有用
form.name
表示)?我知道
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>

酒吧

这是添加支持的提交:

您是否尝试过
?是。我不明白你为什么说
$index
工作正常。你能举个例子吗(plunker)?我用
ref{{{$index}}
代替
{{{form.name}}
。抱歉,我不能提供plunkr,因为我目前不在该分支上,正在进行更改,我不想隐藏这些更改并失去我的思路。直到我需要使用
ng类
,它不使用interpolation.Ah,这一切都很好。我使用的是1.3.0-rc.1。非常感谢。