我试图理解EmberJS如何与Ruby on Rails(或者你正在使用的任何后端可能适用于此处)进行交互的一件事。我们编写的所有模板基本上都是在手柄中完成的,EmberJS负责根据您所使用的路径进行渲染。那部分我得到了。问题是,当您导航URL并且您正在使用浏览器的history API
时,它仍然会到达Rails的后端并通过Rails HTTP请求的正常层次结构。这意味着从routes.rb
到发送回客户端的所有视图的所有内容都会受到影响。我只是想弄清楚这是否正常?在将现有的Rails应用程序转换为与Ember一起使用时,由于此行为,我仍然会渲染大量不再适用的Rails视图。我猜他们应该从服务器上删除它们以免浪费处理时间?当使用带有EmberJS的历史API或其他相关的客户端框架时,这是典型的行为吗?
答案 0 :(得分:1)
如果您使用的是历史记录API,则这是典型的。但是,这也是我建议关闭此功能的原因。 ember通常与rails集成的方式是你只有一个控制器动作,比如home #index将直接通过导航到浏览器中的url来命中。每个其他rails操作都将通过ajax从ember中的路径(最好)调用。
如果必须保留标准网址,则必须为ember路由器中定义的每个网址定义一个rails控制器方法。当然,您可以将所有网址指向“home#index”操作,该操作以空的html页面进行响应。