预编译 JavaScript 模板以在项目构建时发挥作用
更新 我想避免在客户端编译模板,并在本地 ant 构建过程中编译它们。也许像将 jQuery 和 jQuery 模板加载到 rhino 中,依次将每个 .jst 文件的内容传递给 $.template()
函数,并构建一个应包含以下内容的“templates.js”
$.template['model-view'] = resultingFunction.toString();
// 1 for each .jst file
: ,我可以将每个模板维护在单独的文件中,并避免让所有客户端冗余地编译相同的模板。
我正在使用 jQuery 模板,并希望将它们分离到自己的文件中(例如 model-view.jst),这些文件在项目构建时编译成函数,并在 jQuery .tmpl() 范围中可用以供以后使用使用。
例如,给定文件 model-view.jst
<li>${name}</li>
该文件和所有其他 .jst 文件应该在构建时选取,编译成一个函数,稍后可以在程序中的任何位置使用,如下所示:
$.tmpl('model-view', {
name: 'Matt'
});
Update I want to avoid compiling the templates client-side, and have them compile during my local ant build process. Perhaps something like loading jQuery and jQuery templates into rhino, passing the $.template()
function the contents of each .jst file in turn, and building a "templates.js" which should contain:
$.template['model-view'] = resultingFunction.toString();
// 1 for each .jst file
This way, I can maintain each template in a seperate file, and avoid having all clients redundantly compile the same template.
I'm using jQuery templates, and was hoping to separate them out into their own files (eg. model-view.jst) that are compiled into functions when the project is built and made available in the jQuery .tmpl() scope for later use.
For example, given the file model-view.jst
<li>${name}</li>
This file and all other .jst files should be picked up on build, compiled into a function that can later be used anywhere in the program like so:
$.tmpl('model-view', {
name: 'Matt'
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我使用 Node.js 和 Coffeescript 将部分目录模板化为可执行的预编译函数,解决了这个问题。希望这有帮助。
https://github.com/wookiehangover/jquery-tmpl-jst
I solved this problem using Node.js and coffeescript by making directory of partial templated into executable, pre-compiled functions. Hope this helps.
https://github.com/wookiehangover/jquery-tmpl-jst
我让你决定是否喜欢:)
在你常见的js库中定义这个函数:
然后在你的master hml文件
部分你可以添加:
所以你可以在代码中的任何地方使用
希望它有帮助
I let you decide if you like it or not :)
in you common js library define this function:
Then in you master hml file
<head></head>
section you can add:so you can use anywhere in your code
Hope it helps