2013-04-07 16 views
9

私は3つのセクションに名前空間を付けたRailsアプリケーションを持っています(モデルを共有するほぼ3つのアプリケーション)。各名前空間セクションが独自のEmberアプリケーションを持つようにしたいと思います。これらのアプリは決して同じレイアウトで読み込まれることはありませんので、お互いを知る必要はありません。実際には、アプリケーションが最終的に本当に分割される可能性がある場合は、コードをできるだけ別々にしておきたいと思います。Ember-Railsと名前空間テンプレート

私はember-rails gemを使ってこれをしようとしています。 How can I specify an alternative directory for my HandlebarsJS templates with the ember-rails gem?

そして、答えはそこに動作しますが、私は私がちょうど1つの名前空間制限templates_rootを使用してかなり確信している:

は、基本的には、この質問のようなものです。ですから、私はadmin.jsとadmin/templatesの名前空間だけでなく、customer.jsとcustomer/templatesの名前空間も持つことができませんでした。

ember-railsが複数の名前空間のEmberアプリケーションをサポートし、結果として複数のテンプレートのルートをレンダリングするかどうかは誰にも分かりますか?

ありがとうございます!

+0

このGithubプルリクエスト(https://github.com/emberjs/ember-rails/pull/111)の情報は、一度入手すればここで最終的な回答が追加されます。 – ootoovak

答えて

12

投稿者here投稿ごとにカスタムリゾルバを追加することで、名前空間テンプレートを作成できます。

App1 = Ember.Application.create({ 
    Resolver: Ember.DefaultResolver.extend({ 
    resolveTemplate: function(parsedName) { 
     parsedName.fullNameWithoutType = "app1/" + parsedName.fullNameWithoutType; 
     return this._super(parsedName); 
    } 
    }) 
}); 

App2 = Ember.Application.create({ 
    Resolver: Ember.DefaultResolver.extend({ 
    resolveTemplate: function(parsedName) { 
     parsedName.fullNameWithoutType = "app2/" + parsedName.fullNameWithoutType; 
     return this._super(parsedName); 
    } 
    }) 
}); 

App3 = Ember.Application.create({ 
    Resolver: Ember.DefaultResolver.extend({ 
    resolveTemplate: function(parsedName) { 
     parsedName.fullNameWithoutType = "app3/" + parsedName.fullNameWithoutType; 
     return this._super(parsedName); 
    } 
    }) 
}); 
+1

マジック。ありがとう!! – Charlie

+0

巨大なヘルプ、ありがとうございます。 –