我想写一个knockout.js模板,它应该扩展为一组表格单元格。换句话说,比如:
<tr>
<td>Cell one</td>
<td>Cell two</td>
<div data-bind="template: ..."></div>
<td>Cell six</td>
</tr>
<script id="..." type="text/html">
<td>Cell three</td>
<td>Cell four</td>
<td>Cell five</td>
</script>
但是tr中不允许使用div标签,当然,我无法弄清楚是否有任何方法可以使用模板扩展来替换div标签,而不是将扩展嵌套在div中。 / p>
有人知道实现这个目标的方法吗?
答案 0 :(得分:2)
您可以使用新的“无容器”模板执行此操作:
<tr>
<td>Cell one</td>
<td>Cell two</td>
<!-- ko foreach: names -->
<td>Cell three<span data-bind="text: name"></span></td>
<td>Cell four</td>
<td>Cell five</td>
<!-- /ko -->
<td>Cell six</td>
用这样的js:
$(function() {
var viewModel = {
names: ko.observableArray([ { name: "Bob"}, {name: "John"}])
};
ko.applyBindings(viewModel);
});
这是一个jsfiddle,它显示了它的实际效果:jsfiddle
这是一个jsfiddle,显示没有 foreach:jsfiddle