0

我可以看到注入器加载模板并将其设置在可观察的模板中,但渲染不会发生。它只显示“正在加载”,但它调用 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 模板开始一个新项目(如果您还没有,请在 google 中搜索此模板)
  2. 通过 NuGet 添加 koExternalTemplate,它还将安装交通警察和 infiser。
  3. 更新 BundleConfig.cs 以添加 TrafficCop、infuser 和 koExternalTemplate
  4. 在项目的根目录下创建一个文件夹名称 Templates 添加一个模板文件。使用注入器配置更新主 js 以指向模板和文件模式(如果你知道一点 koExternalTemplate 你知道我在说什么)。
  5. 在 home/details html 中包含模板并启动应用程序。

结果:您只会看到“正在加载...”代替您的模板,并且模板不会被渲染。

4

1 回答 1

1

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

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

并将模板文件夹移动到视图文件夹(约定)下。

于 2013-02-25T20:18:09.197 回答