Ember JS和多个单页应用程序

时间:2013-07-24 04:21:29

标签: ember.js

假设我有一个网络应用程序 - 一个大型,复杂的rails应用程序,就像一个会计应用程序。我看到几个单页应用程序的使用,而不是典型的rails round tripping页面。例如,我可以看到用户更好地使用直观的单页/动态应用程序:

  • 创建银行对帐
  • 创建发票
  • 填写时间报告
  • 等。

这些都是截然不同的单页应用......

我看到的所有余烬应用都是单页目的。

我想拥有许多使用ember构建的单页应用。这看起来如何:

路由:我有服务器路由和客户端路由的组合。在Ember看起来怎么样?提供不同的Ember应用程序,每个应用程序都有自己的应用程序路由器和路由?

模板:我的所有“小程序”是否会被编译并在加载时下载到客户端?或者我会利用require.js并加载每个单页应用程序,具体取决于它们是否被导航到? ...

任何人都可以帮助解决这两个问题吗? 提前谢谢!

2 个答案:

答案 0 :(得分:2)

  

路由:我有服务器路由和客户端路由的组合。在Ember看起来怎么样?提供不同的Ember应用程序,每个应用程序都有自己的应用程序路由器和路由?

取决于功能方面的重叠程度。当然,您可以使用自己的路由器和路由为不同的Ember应用程序提供服务。在这种情况下,您可能还会编写一个包含公共基类和mixin的共享库。

另一种方法是使单个余烬应用程序的外观和行为根据路径而有很大不同。这就是我要开始的地方,直到你对灰烬有一种良好的感觉,并看到一个令人信服的理由将事情分开。

  

模板:我的所有“小程序”是否会被编译并在加载时下载到客户端?或者我会利用require.js并加载每个单页应用程序,具体取决于它们是否被导航到? ...

rails中阻力最小的路径是使用链轮编译和打包模板 - 一旦编译它们只是javascript。通常,rails应用程序会将所有javascript捆绑到application.js中并在加载时包含该javascript。另一种方法是将特定于应用程序的代码和模板拆分为app1.js,app2.js等,并在导航到应用程序时加载每个代码和模板。

答案 1 :(得分:2)

我建议使用PODS结构然后你可以使用像

这样的路线
/app1/
  /route1
  /route2  
/app2/
  /route1
  /route2
etc...

如果您使用pods结构生成文件夹,例如 ember generate route app1\route1

您最终会得到一个好的文件夹结构,以后可以拆分,例如:

   /app
       /pods/
            /app1
                 /route1
                    route.js
                    controller.js
                    template.hbs
                 /route2
                    route.js
                    controller.js
                    template.hbs
            /app2
                 /route1
                    route.js
                    controller.js
                    template.hbs
                 /route2
                    route.js
                    controller.js
                    template.hbs