【问题标题】:I upgraded to knockoutjs 2.2.1 and jquery 1.9, koExtenalTemplates are broken我升级到了 knockoutjs 2.2.1 和 jquery 1.9,koExtenalTemplates 坏了
【发布时间】:2013-02-26 05:01:45
【问题描述】:

我可以看到注入器加载模板并将其设置在可观察的模板中,但渲染没有发生。它只显示“正在加载”,但它调用 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 中包含模板并启动应用程序。

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

【问题讨论】:

标签: knockout.js hottowel


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-05
    • 1970-01-01
    • 2018-09-24
    • 1970-01-01
    • 2012-07-27
    • 1970-01-01
    相关资源
    最近更新 更多