我正在使用此语法提供路由,但选择#/posts
路由时
代码不能正常运行:
app.config([
'$stateProvider',
'$urlRouterProvider',
function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('home', {
url: '/home',
templateUrl: '/home.html',
controller: 'MainCtrl'
})
.state('posts', {
url: '/posts/{id}',
templateUrl: '/posts.html',
controller: 'PostsCtrl'
})
$urlRouterProvider.otherwise('home');
}])
答案 0 :(得分:0)
原因是,网址'/posts'
实际上是而非映射。几乎没有办法,但最典型的,我会说,是亲子。因此,我们应该将其作为父(列表视图)
// this could/should be a state for all posts
.state('posts', {
url: '/posts',
templateUrl: '/posts.html',
controller: 'PostsCtrl'
})
// this would be a child state, when id is provided
.state('posts.detail', {
url: '/{id}',
templateUrl: '/post.detail.html',
controller: 'PostsDetailCtrl'
})
此外,父模板posts.html
必须包含其详细视图<div ui-view="">