0

因此,我已将 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来处理诸如捆绑、uglify、缩小和打包所有 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. 如果我不执行上述操作,那么每次为生产构建时,我都必须手动编辑所有视图文件以使用预编译模板。容易出错的东西。

有没有自动设置的机制?

4

1 回答 1

0

我会切换到延迟加载模板并始终进行预编译。它们得到编译的客户端,并且它们对于调试客户端的用处并没有减少。

var DrawerMenu = Ember.View.extend({
    templateName: 'drawer-menu',
});
于 2013-12-11T16:32:22.757 回答