如果我将路由器配置定义为:
export function routerConfig($stateProvider, $urlRouterProvider, $locationProvider) {
'ngInject';
$locationProvider.html5Mode(true);
$stateProvider
.state('myapp', {
url: '/',
templateUrl: 'app/main/main.html',
controller: 'MainController',
controllerAs: 'main'
})
.state('searchResults', {
url: '/search',
parent: 'myapp',
templateUrl: 'app/search-results/search-results.html',
controller: 'SearchResultsController',
controllerAs: 'srchRes'
});
$urlRouterProvider.otherwise('/');
}
当我尝试点击http://localhost/search时,我被重定向到http://localhost。我不知道原因是什么?
但是这段代码正在运作:
export function routerConfig($stateProvider, $urlRouterProvider, $locationProvider) {
'ngInject';
$locationProvider.html5Mode(true);
$stateProvider
.state('myapp', {
url: '/myapp',
templateUrl: 'app/main/main.html',
controller: 'MainController',
controllerAs: 'main'
})
.state('searchResults', {
url: '/search',
parent: 'myapp',
templateUrl: 'app/search-results/search-results.html',
controller: 'SearchResultsController',
controllerAs: 'srchRes'
});
$urlRouterProvider.otherwise('/');
}
现在我http://localhost/myapp/search工作正常。
无法在“url”属性设置为“/”root的状态下创建嵌套状态吗?
答案 0 :(得分:1)
我相信url属性是可选的,如果你从父级删除它,你应该能够导航到没有任何问题的孩子