javascript - 为什么我可以将表单绑定(bind)到 $index,但不能插入名称?

标签 javascript angularjs

我正在尝试根据数组的数量创建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/

相关文章:

javascript - 如何在 window.open 函数中写一个 javascript 变量

javascript - 如何将 gridster.js 包含到 Ember 应用程序中?

AngularJS:ng-如果 bool 条件不起作用?

javascript - 解析将 2D 数组从 PHP 脚本返回到 Wordpress 代码块内的 Javascript 变量

javascript - 难以使用全局变量和 $.getScript

javascript - 使用 SSL 运行的应用程序在第一次访问时未加载所有脚本/CSS

angularjs - 如何在 Angular2 中使用 Owl Carousel ?

javascript - Angularjs 迭代内更新范围

javascript - 如何摆脱 AngularJS 中当前域的 url 链接?

javascript - 使用 AngularJS 自定义字段验证