2013-02-25 79 views
0

我可以看到infuser加載模板並將其設置爲可觀察模板,但渲染不會發生。它只顯示'Loading',但是它調用了afterRender方法。 模板就像我升級到了knockoutjs 2.2.1和jquery 1.9,koExtenalTemplates被破壞

<button>Refresh</button> 
<nav> 
    <ul data-bind='template:externalTemplate,foreach:DataArray,afterRender:callMe'></ul> 
</nav> 

當模板加載陣列已經在它幾個觀察對象。但沒有得到渲染。但如果點擊刷新按鈕並清理並重新加載陣列。它呈現正常。

這是工作正常與ko 2.2.0和jquery 1.8 ...是KoExternalTemplate損壞與此更新?

編輯: 重現步驟:

  1. 開始HotTowel SPA模板創建一個新的項目(搜索在谷歌這個 模板,如果你不已經有)
  2. 通過的NuGet添加koExternalTemplate,這將安裝交通警察和infiser以及。
  3. 更新BundleConfig.cs添加TrafficCop,infuser和koExternalTemplate
  4. 創建文件夾名稱項目根目錄下的模板添加模板文件。用infuser配置更新主js指向模板和文件模式(如果你知道koExternalTemplate的位,你知道我在說什麼)。
  5. 將模板包含在home/details html中並啓動應用程序。

結果:您只會看到'正在加載...'來代替您的模板和模板無法呈現。

+1

這可能是因爲[此錯誤](https://github.com/SteveSanderson/knockout/pull/801)。 – 2013-02-25 21:04:24

回答

1

Dhana - 最好的選擇是使用Durandal的compose與該視圖的綁定。像這樣:

<div data-bind="compose: { view: 'templates/_sample.tmpl.html', activate: true }">  
</div> 

然後將模板文件夾移動到views文件夾(約定)下。