我的角度应用程序有以下结构。
父模块 - >子模块
在父模块中,我定义了如下状态:
$urlRouterProvider
.otherwise('/home');
$stateProvider
.state('home', {
url: '/home',
templateUrl: 'views/home.html'
})
.state('state1', {
url: '/state1',
templateUrl: 'views/state1.html'
})
.state('state2', {
url: '/state2',
templateUrl: 'views/state2.html'
})
在Child模块中,我将其定义如下:
$urlRouterProvider
.otherwise('/child/childstate1');
$stateProvider
.state('child', {
url: '/child',
templateUrl: 'views/child.html',
abstract: true
})
.state('child.childstate1', {
url: '/childstate1',
templateUrl: 'views/childstate1'
})
.state('child.childstate2', {
url: '/childstate2',
templateUrl: 'views/childstate2'
})
所以我希望应用程序(默认情况下)在childmodule中重定向到 / child / childstate1 ,并在父模块以外的子模块中重定向到 / home 。 当我尝试访问 / child 时,我被重定向到 / home 。我通过使用:
克服了这个问题.when('/child', '/child/childstate1')
.when('/child/', '/child/childstate1')
这是一个有效的黑客,但当我尝试访问 / child / random 时会出现问题它重定向到 / home 但它应该重定向到 /子/ childstate1