我需要在加载数据时让我的行使用标识row_##
,但我无法找到如何将其关闭。
我用于HTML的代码是:
<tbody data-bind="foreach: deliveryItems">
<tr data-bind="attr: {id: \'row_\' + id }">
基本上我希望每个表格行的ID都为row_##
,而##
会被JSON响应中的“id
”值替换。
我用完整的示例代码制作了一个JS小提琴:https://jsfiddle.net/spyke01/kzcr5Lph/
答案 0 :(得分:2)
你的结束 - 这在下面工作。
<tbody data-bind="foreach: deliveryItems">
<tr data-bind="attr: {id: 'row_' + id }">
答案 1 :(得分:0)
我觉得你对试图摆脱困境感到困惑......
在HTML文档中创建data-bind
属性时,属性值必须用单引号或双引号括起来。
<div data-bind=""></div>
现在,引号之间的所有内容都将通过敲除提取并评估,好像它是javascript的片段。所以你可以做你习惯的所有事情。现在,如果你想输入一个字符串,那就有一个问题:如果使用相同的引用类型,你的HTML解析器会认为你已经结束了属性值引号。 E.g:
<div data-bind="text:"hello""></div>
将创建一个<div>
,其data-bind="text:"
属性值组合和hello
属性没有值。
您无法转义这些引号,因为HTML不适用于\
转义字符。例如:
<input type="text" placeholder="hello \"world\"">
只会给你一个占位符hello \
。如果你想在属性和 中放置双引号属性的值,你必须使用"
<input type="text" placeholder="hello "world"">
现在,幸运的是,有两种类型的引用 HTML和JS规范允许。这意味着如果您打算在其中使用双引号,则可以在属性值周围使用单引号,反之亦然。
这使我们得到了解决方案,正如其他回答者已经给出的那样:
<tbody data-bind="foreach: deliveryItems">
<tr data-bind="attr: {id: 'row_' + id }">
</tbody>
现在,只有当你想在你的id字符串中使用<{1}}字符 时,你才必须使用'
。 E.g:
\'
会给你:
attr: { id: 'row\'_' + 12 }
答案 2 :(得分:-1)
我能够弄清楚这一点。我不得不用这个:
<tbody data-bind="foreach: deliveryItems">
<tr data-bind="attr: {id: \'row_\' + $data.id }">