[英]Ember.JS w/ Rails JSON API - two separate APIs? One for UI one for connecting 'apps'?
[英]Possible to have multiple ember.js apps in one Rails app?
我正在開發一個Ember應用程序,該應用程序需要與另一個具有Rails后端的ember應用程序合並(使用ember-rails gem)。 是否可以通過Rails后端連接兩個完全獨立的余燼應用程序? 將會有一些共享資源(通過Rails),但其他應用程序有很大不同,因此理想的是能夠通過一個Rails應用程序為它們提供服務,而不是為每個Ember應用程序制作兩個單獨的Rails應用程序。
謝謝
絕對有可能。 有多種方法可以做到這一點。 我的建議是使您的Ember.js應用程序共享一個名稱空間和實例。
下面是一個代碼示例(貸方為@brg)
MainRailsApp = Ember.Application.create(); RailsEngine = Ember.Namespace.create(); RailsEngine2 = Ember.Namespace.create();
基於此 , 可接受的方法如下
App = Ember.Namespace.create({name: "App" }); Main = App.MainApp = Ember.Application.extend(); Main.create();
兩者都是有效的,您可以根據特定於應用程序的需求和工作流程來決定。
是的,完全有可能。
每個應用程序都需要一個Rails路線。 例如/ app1和/ app2
我為我的ember應用程序和我的Rails應用程序有一個單獨的javascript清單文件,但是我不明白為什么您不能將兩個余燼應用程序合並到application.js清單文件中。
您可以按以下方式實例化Ember應用程序:
App = Ember.Application.create({
rootElement: '#PUT_YOUR_ROOT_DOM_ELEMENT_HERE',
Resolver: Ember.DefaultResolver.extend({
resolveTemplate: function(parsedName) {
parsedName.fullNameWithoutType = "PUT_THE_RELATIVE_RAILS_URL_FOR_YOR_EMBER_APP_HERE/" + parsedName.fullNameWithoutType;
return this._super(parsedName);
}
})
});
余燼的默認行為是附加到DOM的底部,您可以指定一個rootElement,如上所示。如果重新使用Rails應用程序的頁眉或頁腳,則很有用。 上面的解決方案顯示了如何為ember應用程序指定Rails網址,以便Ember網址是相對於它的。
我從這里得到了這個解決方案: Ember-Rails和命名空間模板
更新:
您還應該在路由器中指定相對的Rails網址
App.Router.reopen({
rootURL: '/PUT_THE_RELATIVE_RAILS_URL_FOR_YOR_EMBER_APP_HERE'
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.