javascript - Knockout.js 动态组合表

标签 javascript html knockout.js

我正在尝试用 knockout js 制作一个“动态表”,但遇到了一些困难。我想要一个带有可变列嵌套模板的“公共(public)行模板”。像这样:

<script type="text/x-jquery-tmpl" id="CommonRow">
<td><input type="text" data-bind="value: Nome" /></td>
<td data-bind="template: { name: $item.LabelOne + 'Row' }"></td>
<td><button class="fancybox edit" data-bind="click: Edit">Modifica</button></td>
<td><button class="remove" data-bind="click: Remove">Rimuovi</button></td>
</script>

所以第二个<td>将呈现一个模板,它看起来像这样:

<script type="text/x-jquery-tmpl" id="ScalaRow">
<td><input type="text" data-bind="value: PianiFuoriTerra" /></td>
<td><input type="text" data-bind="value: Foo" /></td>
</script>

这个“有效”但有一个大问题:所需的 <td>嵌套在外部 <td>与模板绑定(bind),导致与 header 的不正确对齐(其结构也是相同的)。

我尝试使用 {{tmpl}} 语法来避免包装 <td>这为我提供了正确的 html,但所有数据绑定(bind)和可观察对象在动态部分不再起作用。

有没有办法渲染 <td> 的 block ?保留 knockout 可观察功能并避免任何包装标签?谢谢。

最佳答案

您最好的选择是查看使用 KO 1.3 beta .以下是执行您想要的操作的示例:http://jsfiddle.net/rniemeyer/wmDfv/

<table data-bind="foreach: items">
    <tr>
        <td data-bind="text: name"></td>
        <!-- ko template: type -->
        <!-- /ko -->
    </tr>
</table>

<script id="typeA" type="text/html">
    <td>typeA template</td>
</script>

<script id="typeB" type="text/html">
    <td>typeB template</td>
</script>

关于javascript - Knockout.js 动态组合表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7710913/

相关文章:

javascript - 更快的 JavaScript 处理

javascript - 将罗马数字转换为阿拉伯数字——recursiv

javascript - 制作一个随滚动流动的div

javascript - 绑定(bind)列表未显示在 Knockout.js 的 html 查看源代码中?

knockout.js - 在 Knockout.js 数据绑定(bind)上添加静态文本

javascript - 如何对 Blogger 中的背景图片应用模糊效果?

java - 黑莓网络兼容性

新附加 HTML 上的 Javascript window.print() 问题

javascript - MVVM:viewModel 的架构应该像 View 还是模型

javascript - 获取对象值并将其添加到 HTML Div