【发布时间】:2014-10-19 13:49:00
【问题描述】:
我正在尝试设置像这样工作的 Angular 路由/状态:
(伪代码)
/homepage
defaultstate: homepartial.html
/projects
defaultstate: projectHome.html
/projects/editProject
url: projectForm.html
所以视图最终会是这样的:
Home:
index.html (includes site header and navbar)
main view ---> home-partial.html
myProjects:
index.html
main view ---> projectHome.html
main view ---> project-home-partial.html (shows list of projects)
editProject: (clicking on a project on projectHome.html)
index.html
main view ---> projectHome.html
main view ---> projectForm.html
我正在尝试构建嵌套状态来实现这一点,但我似乎并没有完全理解它是如何工作的。 这是我的路由设置:
.config(function ($stateProvider, $urlRouterProvider, $locationProvider, $httpProvider) {
$urlRouterProvider.otherwise('/');
$stateProvider
.state('/', {
url: '/',
controller: 'org.mi.novum.controllers.NovumBaseCtrl',
views: {
'': {
templateUrl: 'app/main/main.html'
},
'main@/': {
templateUrl: 'app/main/home-partial.html',
views: {
'myProjects@main@/': {
url: '/myProjects',
templateUrl: 'app/project/myProjects.html'
}
}
}
}
})
目前标准的主页路径有效,显示索引页面,其中嵌套了主页部分。但是,当我单击链接转到 myProjects 页面时,它不起作用 - 没有错误,只是没有发生任何事情。
链接如下所示: 我的项目
我想我想要做的是定义像“editProject”这样的路由,如果这有意义的话,最终将导致 /index.html -> myProjects.html -> EditForm.html。
任何方向都将不胜感激,包括是否有更好的方法来实现我想要的。
【问题讨论】: