我升级到knockoutjs 2.2.1和jquery 1.9,koExtenalTemplates被打破了

时间:2013-02-25 17:39:07

标签: knockout.js hottowel

我可以看到infuser加载模板并在模板中设置它可观察,但渲染不会发生。它只显示'正在加载',但它调用afterRender方法。 模板就像

<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,它也将安装交通警察和信息员。
  3. 更新BundleConfig.cs以添加TrafficCop,infuser和koExternalTemplate
  4. 在项目根目录下创建文件夹名称模板添加模板文件。使用infuser配置更新主js以指向模板和文件模式(如果你知道koExternalTemplate的位,你知道我在说什么)。
  5. 在home / details html中包含模板并启动应用程序。
  6. 结果:您只会看到“正在加载...”代替您的模板,并且模板无法呈现。

1 个答案:

答案 0 :(得分:1)

Dhana - 最好的选择是使用Durandal compose绑定该视图。像这样:

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

并在views文件夹(约定)下移动模板。