首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >可以在一个Rails应用程序中包含多个ember.js应用程序吗?

可以在一个Rails应用程序中包含多个ember.js应用程序吗?
EN

Stack Overflow用户
提问于 2014-06-27 23:54:41
回答 2查看 1K关注 0票数 1

我正在开发一个Ember应用程序,需要与另一个带有Rails后端的ember应用程序合并(使用ember-rails gem)。有没有可能通过Rails后端连接两个完全独立的ember应用程序?将会有一些共享的资源(通过Rails),但除此之外,这些应用程序是非常不同的,最好能用一个Rails应用程序为它们提供服务,而不是为每个Ember应用程序创建两个单独的Rails应用程序……

谢谢

EN

回答 2

Stack Overflow用户

发布于 2014-06-28 00:18:50

当然有可能。有多种方法可以做到这一点。我的建议是让您的Ember.js应用程序共享一个名称空间和实例。

下面是一个代码示例(归功于@brg)

MainRailsApp = Ember.Application.create(); RailsEngine = Ember.Namespace.create(); RailsEngine2 = Ember.Namespace.create();

基于this,可接受的方法如下

App = Ember.Namespace.create({name: "App" }); Main = App.MainApp = Ember.Application.extend(); Main.create();

这两种方法都是有效的,您可以根据应用程序的特定需求和工作流程来决定。

票数 1
EN

Stack Overflow用户

发布于 2014-06-28 01:07:25

是的,完全有可能。

您需要为每个应用程序提供一条Rails路由。例如/app1和/app2

我有一个单独的javascript清单文件用于我的ember应用程序和我的Rails应用程序,但我不明白为什么你不能将这两个ember应用程序合并到application.js清单文件中。

您可以按如下方式实例化Ember应用程序:

代码语言:javascript
运行
复制
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);
    }
  })
});

Embers的默认行为是附加到DOM的底部,您可以指定一个rootElement,如下所示。如果您重用Rails应用程序中的页眉或页脚,则非常有用。上面的解决方案展示了如何为ember应用程序指定您的Rails url,以便Ember url与之相关。

我从这里得到了这个解决方案:Ember-Rails and namespaced templates

更新:

还应在路由器中指定相对Rails url

代码语言:javascript
运行
复制
App.Router.reopen({    
  rootURL: '/PUT_THE_RELATIVE_RAILS_URL_FOR_YOR_EMBER_APP_HERE'
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24456021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档