angular ng-repeat创建多个表单语法错误

时间:2015-10-08 17:21:32

标签: angularjs forms angularjs-ng-repeat

我正在重复一个项目集合,每个项目我想拥有自己的表单和自己的提交按钮,它会将表单信息发送到提交功能。我需要知道哪个项目正在提交,所以我想我会为每个项目创建一个表单,这表明正在提交哪个表单。目前,它是如此重复:

<input ng-model="query" type="text" placeholder="Filter by" autofocus>
<ul class="gNow">
    <li ng-repeat="item in selRole.selectRoles | multifilter:query">
        <form name="selRoleForm-{{item.rowId}}" ng-submit="selRole.selectRole(selRoleForm-{{item.rowId}})" novalidate>
            <div class="card">
                <p>Card Name: {{item.cardName}}</p>
                <p>.. other form elements here ..</p>
                <p><button type="submit">Select</button></p>
            </div>
        </form>
    </li>
</ul>

我收到以下错误:

  

[$ parse:syntax]语法错误:第33列的令牌'{'无效键   表达式[selRole.selectRole(selRoleForm - {{item.rowId}})]   从[{item.rowId}})开始。

我做错了什么 - 或者有更好的方法来解决这个问题吗?

This SO post是我能找到的最接近我的问题,但是,我仍然不确定我是否理解如何适应我的具体需求。

更新 感谢所有回应引导我找到解决方案。我不需要在提交函数中包含表单名称,而是包含项目。这就是所有这一切。

old(语法错误):

ng-submit="selRole.selectRole(selRoleForm-{{item.rowId}})"

新(工作):

ng-submit="selRole.selectRole(item)"

3 个答案:

答案 0 :(得分:1)

使用ngForm:

stack

答案 1 :(得分:1)

只需将表单名称存储在ng-repeated数组中:

pjsipStackProxy.Instance.setSoundDevice(string, string) 

答案 2 :(得分:0)

您只需要在名称的串联中反转转换。 在ng-submit上解析参数时,需要转换的是硬编码字符串,而不是rowId。

会是这样的:

<input ng-model="query" type="text" placeholder="Filter by" autofocus>
<ul class="gNow">
<li ng-repeat="item in selRole.selectRoles | multifilter:query">
    <form name="selRoleForm-{{item.rowId}}" ng-submit="selRole.selectRole('selRoleForm-'+item.rowId)" novalidate>
        <div class="card">
            <p>Card Name: {{item.cardName}}</p>
            <p>.. other form elements here ..</p>
            <p><button type="submit">Select</button></p>
        </div>
    </form>
</li>