簡體   English   中英

一個Rails應用程序中可能有多個ember.js應用程序?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM