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