Durandal / Knockout模板绑定不插入

时间:2013-03-21 20:49:46

标签: knockout.js durandal

我目前正在尝试将表格行<tr>模板传播到<tbody>标记中。这是一个例子:

HTML:

<table>
    <tbody data-bind="template: { name : 'tableTemplate', foreach : tableRow }">
    </tbody>
</table>
<script type="text/html" id="tableTemplate">
    <tr>
        <!-- First Name -->
        <td data-bind="text: firstName"></td>
        <!-- Last Name -->
        <td data-bind="text: lastName"></td>
    </tr>                        
</script>

DurandalJS:

define(function(require) {
    var self = this;
    self.app = require('durandal/app');

    return {
       tableRow: ko.observableArray([
           { firstName: "DemoFirstName" , lastName: "ExampleLastName" },
           { firstName: "ExampleFirstName", lastName: "DemoLastName" }
       ]);

    //viewAttached and other non-applicable console log functions here
    };
});

HTML中的所有内容都将正确地进行数据绑定,直到它到达表中为止;所有数据绑定事后都会死亡。

我对Durandal很新,我正在学习。

4 个答案:

答案 0 :(得分:8)

我遇到了同样的问题,我在Durandal谷歌小组上挖出了答案。我在这个问题上发布了结果。的 KO cannot find template with ID

基本上你不能使用named / ID'd Knockout模板,它们不受支持。 根据Durandal开发人员的新闻组,支持可能很快就会到来。 解决方法是使用内联或Durandal的撰写功能。

答案 1 :(得分:2)

可能想尝试这个而不是模板方法:

<table>
  <tbody data-bind="foreach: tableRow">
    <tr>
      <!-- First Name -->
      <td data-bind="text: firstName"></td>
      <!-- Last Name -->
      <td data-bind="text: lastName"></td>
    </tr>                        
  </tbody>
</table>

答案 2 :(得分:0)

KO模板似乎不能与Durandal一起使用 - 请使用View Composition(Durandal的创建者在此处发帖) - https://github.com/BlueSpire/Durandal/pull/50

这里有一些更加模糊:KO cannot find template with ID

答案 3 :(得分:0)

您应该尝试compose的{​​{1}}。 Document here