2013-03-21 58 views
5

我目前正在嘗試將表格行<tr>模板傳播到<tbody>標記中。這裏有一個例子:Durandal/Knockout Template Binding Not Inserting

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一切都將正常的數據綁定,直到它擊中表;之後所有的數據綁定都會死掉。

我對杜蘭達頗爲陌生,而且隨着我的進步而學習。

+0

瀏覽器的JavaScript控制檯中是否有任何錯誤? – nemesv 2013-03-21 20:59:29

+0

你可以發佈你的完整代碼嗎?你在這裏展示的應該是有效的。另外,你爲什麼應用這個應用程序?只需創建一個新變量。 – 2013-03-21 22:26:23

+0

更新:由於你們都說了什麼,我開始仔細研究可能導致問題的代碼中的任何其他地方。有一個來自先前作者的舊數據綁定嵌套在模式的DOM底部附近,導致數據綁定已死的控制檯錯誤/不會執行任何操作(爲什麼我沒有注意到它? ,你活着,你學習)。一旦我評論出來,我開始得到一個控制檯錯誤,說'找不到帶有ID tableTemplate的模板'。我會繼續調查。 – Arctic 2013-03-22 15:28:47

回答

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> 
+0

我無法獲得模板方法的工作,但您的選擇。謝謝!給你的帖子當之無愧的+1。 雖然,我確實希望知道爲什麼模板方法不起作用,以防將來出現我真的需要使用它的情況。 – Arctic 2013-03-24 18:37:59

+0

不確定,但我會猜測你顯示的模板標記是在Durandal模塊中,也許'模板'綁定沒有以直接的Knockout應用程序的方式查找模板。您可能想在沒有Durandal的Knockout樣本中試試看。 – 7zark7 2013-03-24 18:44:57

+0

是的,它在Durandal模塊中,Knockout文檔和示例的很大一部分僅適用於簡化的直觀KO viewModel。不幸的是,Durandal沒有那麼多的文檔,並且沒有爲這些常見任務提出問題。 – Arctic 2013-03-24 18:56:43

8

我碰到了同樣的問題,我挖出來的迪朗達爾谷歌組答案。我將結果發佈在我的問題上。 KO cannot find template with ID

基本上你不能使用named/ID'd Knockout模板,它們不被支持。據Durandal的新聞組稱,支持可能會很快到來。 解決方法是使用內聯或Durandal的組合功能。

+0

+1 to Kal_Torak發佈信息以及.. :) – mikekidder 2013-03-29 04:58:36