【问题标题】:how to pre-compile templates with knockout?如何使用淘汰赛预编译模板?
【发布时间】:2014-03-01 00:27:46
【问题描述】:

从knockout的示例/教程中,所有视图/模板都在一页中,是否可以将它们分开在不同的文件中并预编译它们。就像 ember 框架所做的一样。 如果是,有样品吗?更好地使用把手或淘汰本机模板引擎。

谢谢。

【问题讨论】:

标签: templates knockout.js


【解决方案1】:

Cassette 的人找到了预编译 Knockout JS 模板的解决方案:http://getcassette.net/documentation/v1/html-templates/knockoutjs-jquery-tmpl

但 Cassette 是构建 .NET Web 应用程序的资产,因此该解决方案似乎仅适用于 .NET 世界。

【讨论】:

    【解决方案2】:

    为此有几个不同的库,例如

    https://github.com/ifandelse/Knockout.js-External-Template-Engine

    我也制作了自己的,使用约定方法

    https://github.com/AndersMalmgren/Knockout.Bootstrap

    Install-Package Knockout.Bootstrap
    

    它需要一个服务来获取模板,一旦完成,你就可以加载模板

    this.bootstrap.loadView(model, this.view);
    

    按照约定,如果发送的模型名为 EditOrderViewModel,它将加载名为 EditOrderView 的视图

    维基 https://github.com/AndersMalmgren/Knockout.Bootstrap/wiki

    【讨论】:

    • 感谢您的回复,但我想将所有模板预编译成一个js文件,然后应用程序可以使用它们。您列出的 lib/code,看起来它们用于远程获取视图 html 作为模板
    • 不知道有没有这样的lib,搜索的时候没找到。如果你在 VS 上,你可以创建一个连接它们的 t4 模板。然后使用自定义模板源进行淘汰
    • 您的方法的一个问题是,对于大型网站,JS 文件会很大
    • 但这意味着只有一个大请求通常比几个小请求更好,并且该文件可以被缓存......
    • 关于我的情况,我只想编写一个本地 Web 应用程序,使用 phonegap 来包装它。所以没有服务器。更具体地说,我想使用文件协议打开它:file::/path,
    猜你喜欢
    • 2014-04-08
    • 1970-01-01
    • 2018-09-05
    • 2011-08-11
    • 1970-01-01
    • 1970-01-01
    • 2016-10-08
    • 2016-02-27
    • 2012-07-16
    相关资源
    最近更新 更多