7

我已经对这个主题进行了一些研究,但我找不到任何真正有用的东西。

我的问题

我有一个项目列表(在 SharePoint 中),我正在使用 KnockoutJS foreach 语句来显示一个包含所有项目的表格。像这样:

数量 | 价格 | Total_Price | 单选按钮1 | 单选按钮2

如您所见,有 2 个单选按钮,并且必须为它们使用 id 属性(因为我也在使用 JqueryUI - label for='id of element' - )

我试过这样的东西>

代码示例:

......

<% int i=1; %>
< ! - - ko foreach: 项目 --> ........

     <input type="radio" id="Yes+<%=i %>"/>
     <label for="Yes+<%=i %>" >Yes</label>
     <input type="radio" id="No+<%=i %>" />
     <label for="No+<%=i %>">No</label>

     </td>

<%i++; %>

< !-- /ko -->

问题是 asp 代码无法识别 ko foreach 迭代。

有任何想法吗 ?谢谢

4

2 回答 2

10

您可以在 Item viewmodel 上放置一个 Id 然后使用它吗?

< ! - - ko foreach: Items --> ........

 <input type="radio" data-bind="attr: { id: 'Yes' + Id }" />
 <label data-bind="attr: { 'for': 'Yes' + Id }" >Yes</label>
 <input type="radio" data-bind="attr: { id: 'No' + Id } />
 <label data-bind="attr: { 'for': 'No' + Id }">No</label>

 </td>
< !-- /ko -->

或使用 Macropus 建议的可观察索引:

< ! - - ko foreach: Items --> ........

 <input type="radio" data-bind="attr: { id: 'Yes' + $index() }" />
 <label data-bind="attr: { 'for': 'Yes' + $index() }" >Yes</label>
 <input type="radio" data-bind="attr: { id: 'No' + $index() } />
 <label data-bind="attr: { 'for': 'No' + $index() }">No</label>

 </td>
< !-- /ko -->
于 2012-10-12T13:23:05.693 回答
0

看到您只是将其用于标签,您可以在这篇文章中使用淘汰赛 uniqueid 绑定:

淘汰赛中的 UniqueID 绑定

还有一个uniquename绑定

于 2012-10-12T13:21:19.563 回答