如何绑定到AngularJS中的表单属性?

时间:2016-03-03 21:07:15

标签: javascript angularjs

我已经构建了一个指令来显示Angular中表单字段的验证消息。粗略地说,它看起来像这样:

<form name="someForm">
    <div>
       <input name="someField" type="text" ng-required="true" />
       <show-messages form-property="someForm.someField">
       </show-messages>
    </div>
</form>

当我尝试构造字段名称时,会出现问题。

<form name="someForm">
    <div ng-repeat="item in items">
        <input name="{{ 'someField' + item.id}}" type="text" ng-required="true" />
        <show-messages form-property="????">
        </show-messages>
    </div>
</form>

我已经尝试了我能想到的每一种结合语句的组合,包括:
&#34; someForm [someField + item.id]&#34;
&#34; someForm [{{&#39; someField&#39; + item.id}}]&#34;
&#34; {{&#39; someForm.someField&#39; + item.id}}&#34; ...

所有这些导致解析错误通常如下所示:

[$ parse:syntax]语法错误:令牌&#39; {&#39;表达式[someForm [{{someField + $ index}}]]的列...的无效键....

希望这是我的一个小错误,有人可以指出我正确的语法吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

您应该在'(单引号)中放置硬编码的fieldname,以将其表示为字符串&amp;然后将其与item.id <{1}}联系起来someForm['someField' + item.id]

<show-messages form-property="someForm['someField' + item.id]"></show-messages>

通过执行上述操作,它将从someField1对象中获取someForm字段值。