【问题标题】:Knockout templates with same name and different templateUrl具有相同名称和不同 templateUrl 的挖空模板
【发布时间】:2013-10-25 11:16:45
【问题描述】:

我有以下问题。

我有两个同名模板,它们构成同一模板的可编辑和只读变体。

我的 html 中的两个不同位置(动态创建,但正是这种情况给我带来了问题)我使用模板绑定,并且我想绑定到其中的每一个。

第一个将如下所示:

<div data-bind="template: {name: 'myTemplate', data: $data, templateUrl: '/Templates/readonly/' }"></div>

第二个看起来像这样

<div data-bind="template: {name: 'myTemplate', data: $data, templateUrl: '/Templates/editable/' }"></div>

问题是,当我进行第二个模板绑定时,knout 将重用第一个模板,因为它具有相同的名称,这将使两个模板都成为只读的。

如果第二个模板位于另一个位置,或者没有办法在所有模板上使用唯一名称,那么有什么方法可以让淘汰赛下载第二个模板。

鉴于目前的逻辑,要改变它会做很多工作,所以我希望可以通过绑定而不是重命名来完成。

编辑

我正在使用here 找到的外部模板引擎。

【问题讨论】:

标签: javascript templates knockout.js


【解决方案1】:

似乎只要名称是唯一的,它就会再次获取它(即使这会导致相同的 url。

所以把它们改成

<div data-bind="template: {name: 'readonly/myTemplate', data: $data, templateUrl: '/Templates/' }"></div>

<div data-bind="template: {name: 'editable/myTemplate', data: $data, templateUrl: '/Templates/' }"></div>

让它像我希望的那样工作,服务器端没有任何变化:)

感谢@pax162 让我走上正确的轨道!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-25
    • 1970-01-01
    • 1970-01-01
    • 2017-12-23
    • 1970-01-01
    相关资源
    最近更新 更多