首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails路由+ AngularJS路由

Rails路由+ AngularJS路由
EN

Stack Overflow用户
提问于 2014-04-09 05:10:52
回答 1查看 5.2K关注 0票数 3

我在我的angular应用程序中有以下代码。

代码语言:javascript
复制
app.config(function($routeProvider, $locationProvider) {
   $locationProvider.html5Mode(true);
   $routeProvider
     .when("/users/:u_id/restaurants/:r_id/menus/:m_id/sections/:sec_id/items", { templateUrl: "/assets/menus/items.html", controller: "MenuItemCtrl" })
});

当我使用以下命令导航到路径时,它可以正常工作

代码语言:javascript
复制
<a href="./sections/{{section.id}}/items">View Items</a>

但是,当我刷新页面或直接转到url时,它会抛出一个rails路由错误。

代码语言:javascript
复制
No route matches [GET] "/users/3/restaurants/3/menus/4/sections/4/items"

如果我在routes.rb中创建这个路由,它只返回与响应相关联的JSON,而不会路由到正确的模板。

有人知道如何解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2014-04-09 07:39:03

在rails路由中,您必须将该请求重定向到angular的基本url,以便能够执行angular。

如果没有它,rails就会响应请求。这就是html5mode路由的工作方式。

编辑:

假设你的angular是由application#home提供的。您希望所有的GET请求都被重定向到那里,这样angular就可以工作了。

添加此路由get '*path', to: 'application#home'将使所有GET请求成为angular页面。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22948267

复制
相关文章

相似问题

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