如何在带有RequireJS的车把中使用预编译模板?
我想预编译我的把手模板,但我不确定这在开发模式下是如何工作的 有一些后台进程(如运行)来持续监视把手模板文件的更改,这是常见的做法吗 我使用RequireJS拉入模板;e、 g:如何在带有RequireJS的车把中使用预编译模板?,requirejs,handlebars.js,client-side-templating,Requirejs,Handlebars.js,Client Side Templating,我想预编译我的把手模板,但我不确定这在开发模式下是如何工作的 有一些后台进程(如运行)来持续监视把手模板文件的更改,这是常见的做法吗 我使用RequireJS拉入模板;e、 g: define(['jquery', 'handlebars', 'text!templates/my_template'], function($, Handlebars, myTemplate) { // ... var data = {"some": "data", "some_more": "data
define(['jquery', 'handlebars', 'text!templates/my_template'], function($, Handlebars, myTemplate) {
// ...
var data = {"some": "data", "some_more": "data"};
var templateFn = Handlebars.compile(myTemplate);
$('#target').append(templateFn(data));
// ...
});
所以我知道一旦模板被预编译,人们就会这样做:
define(['jquery', 'handlebars'], function($, Handlebars) {
// ...
var data = {"some": "data", "some_more": "data"};
var template = Handlebars.templates['my_template'];
$('#target').append(template(data));
// ...
});
请注意关于第二个代码段中的以下内容:
if (development) {
compile templates
}
else {
use precompiled templates
}
我也在使用Rails,所以可能有一些像sass Rails这样的黑魔法。你看过Require.js Handlebar插件()或epeli的requirejs hbs()吗?这篇关于Require.js和Handlebar的文章可能会有所帮助。问了这个问题后,我发现实现这一点的另一种方法可能是通过Grunt Watch。然而,更好的方法是使用Grunt和Browserify,完全跳过RequireJS。然后您将使用NPM软件包……而且RequireJS提供的大多数库似乎也可以作为NPM软件包使用(令人惊讶的是,甚至基于DOM的库,如jQuery、主干、Angular)。然后使用同步require()调用来请求:
var $ = require('jquery'),
Backbone = require('backbone'),
AppRouter = require('./app/routers/app');
// Compile LESS and attach resulting CSS to the HEAD.
require('./less/app.less');
$(function() {
new AppRouter();
Backbone.history.start();
});
这是非常好的,而且这是可能的,因为应用程序在每次运行时都是完全构建的。将此功能与Grunt Watch相结合,这样每当发生变化时,您的应用程序都会自我重建,您就可以投入业务了
构建过程甚至需要构建把手模板。要包含模板,只需执行require('./templates/my template.hbs')代码>和grunt browserify的构建过程将找到这个require()调用,编译模板,并将编译后的模板包含到构建应用程序js文件中
比RequireJS好多了 对!!在我发布这个问题后,一位同事提到了require Handlebar插件,它非常完美!它甚至有i18n支持,这使它更棒。我对它进行了测试,它的工作原理和广告上的一样。它不需要从开发模式到生产模式的代码更改,并且使用r.js进行构建,可以将其连接到构建过程中。模板内联到生成的文件中。在生产中必须更改的只是脚本标记,包括require.js+data main…并且可以由您的资产管理器处理。从最新版本开始,i18n功能已被删除。您好,David。抱歉,OP要求提供车把预编译模板。。。您链接到的文章无助于:(