角UI,路由器默认状态问题
我试图安装角路/国是这样工作的:角UI,路由器默认状态问题
(伪)
/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'
},
'[email protected]/': {
templateUrl: 'app/main/home-partial.html',
views: {
'[email protected]@/': {
url: '/myProjects',
templateUrl: 'app/project/myProjects.html'
}
}
}
}
})
在标准的家庭路线运作的瞬间,呈现出与家庭部分嵌套在它的索引页。但是当我点击链接进入myProjects页面时,它不起作用 - 没有错误,只是没有发生任何事情。
链接看起来是这样的: “MyProjects下” <一类= “BTN BTN-主要BTN-LG” 角色= “按钮” UI-SREF = >我的项目</A >
我猜我试图做的是定义像“editProject”这样的路线,这将最终导致/index.html-> myProjects.html - > EditForm.html,如果这是有道理的。
任何方向将不胜感激,包括是否有更好的方法来实现我想要的。
发现了问题 - 我是做两件事情错:
1)我已经忘记了被角fullstack自耕农发生器生成的原始的index.html已经有用户界面视图指令在里面,我当试图移植一个现有的项目时,我会困惑自己,从main.html开始。简而言之,我摆脱了main.html,将ui-view指令添加到了projectsHome.html中的div上,然后如下设置我的路线。
2)我也时常混淆“州”和“意见”。 正确的概念:状态是EditProject,它将我们带到ProjectHome页面,并将子视图设置为“projectForm.html”。
$stateProvider
.state('/', {
url: '/',
templateUrl: 'app/main/home-partial.html',
controller: 'org.mi.novum.controllers.NovumBaseCtrl'
})
.state('myProjects', {
url: '/myProjects',
views: {
'': {
templateUrl: 'app/project/myProjects.home.html'
}
}
})
.state('editProject', {
url: '/myProjects/projectEditor',
views: {
'': {
templateUrl: 'app/project/projectForm.html'
}
}
});
正如你所看到的,我们去的默认首页,其中包括家中的部分它的主要观点。然后当我们点击一个myProjects的链接时,我们进入myProjects主目录,并将myProjects.home.html部分作为默认子视图。
当我们点击myProjects.home.html中呈现的editProject链接时,它将我们带到editProject状态,该状态使用projectForm.html的默认视图加载projectHome.html页面。