【发布时间】:2015-05-14 03:28:03
【问题描述】:
我正在使用 AngularJs,但我遇到了路由问题。 我有这两个网址:
/:博客
/:blog/:post
当我列出博客并点击帖子时,URL 发生了变化,一切都像魅力一样运作。但如果我重新加载页面,Angular 会打开错误的路线。
这是我的代码:
.when('/:blog', {
// If I reload the page, the angular choose this route
templateUrl: '/templates/blogs/show.html',
controller: 'BlogController',
resolve: {
initialData: ["BlogInitialData", function(BlogInitialData){
return BlogInitialData();
}]
}
})
.when('/:blog/:post', {
templateUrl: '/templates/posts/show.html',
controller: 'PostController',
resolve: {
initialData: ["PostInitialData", function(PostInitialData){
return PostInitialData();
}]
}
})
请帮帮我! 我尝试更改顺序,但也没有用。
****************** 已编辑 **************************
我发现了问题,但我无法解决这个问题。 例如,当我访问 /:blog/:post 时。 http://website.com/blog-name/post-slug,角度正在考虑像 /:blog 这样的路线,其值为“post-slug”。如果我只访问“/post-slug”路线,也是一样的。
如果我在最后加上一个斜线 (/),则 angulas 只考虑一条斜线。例如:
/blog-name/post-slug/ -> 调用索引路由
我该如何解决这个问题?
【问题讨论】:
-
哪个网址无效?
/:blog/:post或/:blog? -
对不起。我忘了解释这个。 /:blog/:post 是错误的。角度正在考虑最后一条规则中的其他情况。
-
你确定它不包含额外的
/像/:blog/:post/..这样会搞砸的网址 -
我的安古拉斯很疯狂!我现在试过了,路由给我带来了主页(只有“/”)
-
我编辑了这篇文章。我发现了一个错误,但我无法解决这个问题。
标签: javascript angularjs routes