使用预编译的ember / handlebars模板的工作流程

时间:2013-12-11 06:27:10

标签: ember.js handlebars.js ember.js-view

所以,我已将我的Ember视图设置为使用外部模板文件(.handlebars)。一般机制是这样的。我正在使用requirejs模块格式:

define([
    "ember",
    "text!templates/drawer-menu.handlebars"
], 
function(Ember, drawerMenu) {
    var DrawerMenu = Ember.View.extend({
        template: Ember.Handlebars.compile(drawerMenu),
    });

    return DrawerMenu;
});

现在,我已经设置了我的项目,所以我可以使用GruntJS来完成诸如bundle,uglify,minify和pack之类的所有css& js文件。

我还想预编译我的模板。所以我设置了grunt-ember-templates,它很好地将我的所有模板打包成一个js文件。生成的js文件如下所示:

define(["ember"], function(Ember){
    Ember.TEMPLATES["drawer-menu"] = Ember.Handlebars.template(
        function anonymous(Handlebars,depth0,helpers,partials,data) {
           ....
           return buffer;
        });
);

我不知道,每当我需要模板数据时,我现在应该使用Ember.TEMPLATES["drawer-menu"]而不是Ember.Handlebars.compile(drawerMenu)

我的问题是我应该如何设置开发工作流程?我的意思是

  1. 我是否应该将代码更改为始终使用预编译模板 在我的开发中,我总是需要预编译 环境也。

  2. 如果我不这样做,那么每次我为生产而建,我 必须手动编辑所有视图文件才能使用预编译模板。容易出错。

  3. 是否有自动设置的机制?

1 个答案:

答案 0 :(得分:0)

我会切换到延迟加载模板并始终预编译。它们被编译为客户端,并不像它们对调试客户端那么有用。

var DrawerMenu = Ember.View.extend({
    templateName: 'drawer-menu',
});