我已经购买了一个应用模板,以帮助我了解Angular,并且我正在查看$stateProvider
。目前,我有:
$urlRouterProvider
.otherwise('/app/dashboard-v1');
$stateProvider
.state('app', {
abstract: true,
url: '/app',
templateUrl: 'tpl/app.html'
})
.state('app.dashboard-v1', {
url: '/dashboard-v1',
templateUrl: 'tpl/app_dashboard_v1.html',
resolve: {
deps: ['$ocLazyLoad',
function( $ocLazyLoad ){
return $ocLazyLoad.load(['js/controllers/chart.js']);
}]
}
})
因此,导航到/app/dashboard-v1
会显示信息中心视图。为了摆脱网址中的/app
前缀,我从app
州的网址中删除了app
:
$urlRouterProvider
.otherwise('/dashboard-v1');
$stateProvider
.state('app', {
abstract: true,
url: '/',
templateUrl: 'tpl/app.html'
})
.state('app.dashboard-v1', {
url: '/dashboard-v1',
templateUrl: 'tpl/app_dashboard_v1.html',
resolve: {
deps: ['$ocLazyLoad',
function( $ocLazyLoad ){
return $ocLazyLoad.load(['js/controllers/chart.js']);
}]
}
})
但是这并没有按预期加载模板 - 我希望它能给出完全相同的结果,但使用/dashboard-v1
代替app/dashboard-v1
。我做错了什么?
答案 0 :(得分:3)
您告诉路由提供商转到/ dashboard-v1,但您不再拥有与该网址匹配的任何状态。如果要保留以前的功能,则需要将状态提供程序中的URL更改回/ dashboard-v1。如果你能详细说明你想要达到的目标,我可能会改进我的答案。