2013-04-07 106 views
9

我有一個名爲空間分爲三個部分(幾乎3個應用程序共享模型)的Rails應用程序。我希望每個名稱空間部分都有它自己的Ember應用程序。這些應用程序永遠不會以相同的佈局加載,因此不必瞭解彼此的任何信息。事實上,我希望儘可能將代碼分開,以便應用程序最終可以真正分離。Ember-Rails和命名空間模板

我正在嘗試使用ember-rails gem來做到這一點。

基本上它是這樣一個問題: How can I specify an alternative directory for my HandlebarsJS templates with the ember-rails gem?

而答案有工作,但我敢肯定,使用templates_root限制我只是一個命名空間。所以我不能擁有admin.js和admin/templates命名空間以及customer.js和customer/templates命名空間。

所以沒有人知道如果ember-rails將支持多個名稱空間的Ember應用程序並呈現多個模板根目錄?

謝謝!

+0

收集信息沒有這個Github拉請求(https://github.com/emberjs/ember-rails/pull/111),在我得到它的時候會在這裏添加最終答案。 – ootoovak 2013-04-08 23:35:52

回答

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 2014-02-03 23:40:20

+0

巨大的幫助,謝謝。 – 2014-05-19 02:33:34