首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Rails应用程序中导航到Ember路由?

如何在Rails应用程序中导航到Ember路由?
EN

Stack Overflow用户
提问于 2015-10-20 12:11:50
回答 1查看 309关注 0票数 1

作为我正在开发的Rails应用程序的一部分,我有一个非常复杂的交互式页面,它实际上是一个SPA。我想利用Ember来完成这个任务,这样我就有了更易于管理的代码。我真正需要的是Rails在这个页面上来回传送数据。使用Ember的另一个原因是,我没有用JS编写的所有这些讨厌的jQuery单行视图模板(我更喜欢使用CoffeeScript)。

我按照ember-cli-rails gem自述文件中的说明安装和配置了Ember。我已经为我的应用程序的任何部分创建了一个单独的布局,我想使用Ember。我为Products设置了一条包含Ember和CSS资源的路径。现在,我可以在Rails应用程序中看到该路由的页面上的“欢迎来到Ember”消息。

但我什么也做不了。我试图为这个名为products的小Ember应用程序创建一个“约”部分。到目前为止我看到的问题是:

  • ember创业板初始化器不创建views目录。为什么会这样呢?
  • 我还没有找到一个Ember-CLI教程,它不只是内置了大量的假设。

我的<ember app>/routes目录中有一个<ember app>/routes<ember app>/controllers目录中有一个,必须创建的<ember app>/views目录中有一个,<ember app>/templates目录中有一个emblem模板。

现在是一个非常基本的问题。如何在浏览器中打开这条路径?如果我键入路线:

代码语言:javascript
复制
http://localhost:3000/products

我得到了我的Ember页面,这是我应该做的。但如果我说:

代码语言:javascript
复制
http://localhost:3000/products/about

当然,Rails试图处理这条路线。这不是我想要的。这是我读过的教程中缺少的一步。我总是建议将教程放在门外汉面前,以便在出版前找到漏洞。我很乐意为这份工作做志愿者,以便为社会提供一些东西。

如何在Rails应用程序中导航到Ember路由?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-20 12:41:39

你没有。

在过去的日子里,有ember-rails,它让你通过Rails资产管道设置ember。

您基本上可以使它,以便您的根路径在rails将呈现刚好足够的html启动烬。很好,而且效果很好。但这是个很糟糕的主意。

恩伯现在有自己的构建过程,通过Ember-CLI,所以我们不需要链轮或资产管道只是服务于恩伯和它的依赖。

烬也非常好地部署在一个静态html文件中--您可以直接从Apache或NGINX传递请求(例如使用mod_rewrite )。SPA只需要足够的HTML就可以让SPA框架滚动,然后将数据输入到视图中。

如果您将Ember应用程序嵌入Rails中,则请求必须通过Rack all和所有中间件来呈现基本上是静态的html页面--这是大量不必要的开销。

不同的问题。

现代的方法是分离前端SPA和后端API。它们甚至可以由不同的团队开发。在一个大型存储库中拥有所有的东西都是美好而舒适的,您只需推动部署--但将关注点分开会使应用程序更好。

不仅你的前端应用程序加载速度更快,如果它不是通过铁路。如果Rails API能够丢弃与服务资产、会话和视图相关的所有部分,它将运行得更快。它变成了一台普通的绿色JSON机器,而不是一个弹射庞然大物。

ember.js中的路由选择

所以加载ember server并获得Ember检查插件。你的路线应该在locahost:4200/about

余烬开发服务器将确保每个对localhost:4200的请求都呈现index.html页面。

如果禁用javascript,您会注意到locahost:4200上的任何路径(如locahost:4200/foo/bar/baz )都会呈现相同的html。

但是通常Ember会解析请求url并将其传递给路由处理程序。

这是如何在ember.js中声明路由处理程序的:

代码语言:javascript
复制
// app/router.js
Router.map(function() {
  this.route('about', { path: '/about' });
});

所以当你locahost:4200/about

成员将渲染templates/about.hbs。截止到Ember2.0,视图已经过时了。相反,您有模板和组件(比如Rails中的部分)。

成员也将加载app/routes/about.js,如果它存在。

  • http://guides.emberjs.com/v2.1.0/
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33236339

复制
相关文章

相似问题

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