Javascript 角度中的嵌套URL出错
我用的是AngularJs,我的路线有问题。 我有两个URL: /:博客 /:blog/:post 当我列出博客并点击帖子时,URL会改变,所有的事情都会像一个符咒一样工作。但是,如果我重新加载页面,则角度是打开错误的路径 这是我的代码:Javascript 角度中的嵌套URL出错,javascript,angularjs,routes,Javascript,Angularjs,Routes,我用的是AngularJs,我的路线有问题。 我有两个URL: /:博客 /:blog/:post 当我列出博客并点击帖子时,URL会改变,所有的事情都会像一个符咒一样工作。但是,如果我重新加载页面,则角度是打开错误的路径 这是我的代码: .when('/:blog', { // If I reload the page, the angular choose this route templateUrl: '/templates/blogs/show.html', controll
.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时。
,angular正在考虑像/:blog这样的路由,其值为“post slug”。如果我访问onlye“/post slug”路由,则相同
如果我在最后加上一条斜线(/),安格拉斯人认为这条路线只是一条斜线。例如:
/blog name/post slug/->调用索引路由
如何解决此问题?尝试添加以下代码:
$locationProvider.html5Mode(true)
我认为您正在经历的是AngularJs缺少嵌套视图路由系统。当你点击它时,它工作的原因是因为它确实改变了模板,但它无法解释你试图从URL单独做什么,所以当你刷新它时,它不知道该做什么,并将你带到URL的第一个有效部分,即第一个视图/:blog
。您的解决方案可能是角度ui路由。哪个url不起作用<代码>/:blog/:post或/:blog
?对不起。我忘了解释这个。/:blog/:post是错误的。angular在最后一条规则中考虑了其他方面。你确定它没有像/:blog/:post/
那样在url的末尾包含额外的/
。这会让我的Angulas很疯狂!我现在试过了,这条路线给我带来了我编辑过这篇文章的主页(只有“/”)。我发现了一个错误,但我无法解决这个问题。我将angular.config更改为angular ui route(),出现了相同的错误。如果我将$locationProvider.html5模式更改为false,并尝试使用哈希(#/blog name/post slug)进行访问,则所有操作都会非常有效。只有在没有散列、更改URL的情况下才会出现问题。