0

そこで、外部テンプレート ファイル (.handlebars) を使用するように Ember ビューをセットアップしました。大まかな仕組みはこんな感じです。私はrequirejsモジュール形式を使用しています:

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

    return DrawerMenu;
});

これで、すべての css および js ファイルのバンドル、uglify、縮小、パックなどに GruntJS を使用できるように、プロジェクトをセットアップしました。

また、テンプレートをプリコンパイルしたいと思います。そこで、すべてのテンプレートを 1 つの js ファイルに適切にパックするgrunt-ember-templatesをセットアップしました。生成された 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 に答える