我目前无法理解ui-router,以及我如何能够用它来实现我所追求的目标。
我正在研究课程管理平台。我有很多课程,每个课程里面都有很多视频。通常,我的项目包含2个页面(3个模板 - 一个用于课程主页,一个用于课程项目页面本身,另一个用于课程项目页面上的导航栏)。
有3条主要路线。
/courses
/courses/:courseslug
/courses/:courseslug/:courseitemslug
现在我已经定义了3个州。
$stateProvider
// Gets all courses and renders them
.state('home', {
url: '/courses',
templateUrl: '/templates/angular/courses-home.html',
controller: 'HomeController',
controllerAs: 'home',
resolve: HomeController.resolve
})
// Does some business logic and redirects to courseitem state
.state('course', {
url: '/courses/:courseslug',
controller: 'CourseController',
resolve: CourseController.resolve
})
// Renders one course item (a video) and an <aside> which the user can use to go through all videos of a course
.state('courseitem', {
url: '/courses/:courseslug/:courseitemslug',
templateUrl: '/templates/angular/courseitem.html',
controller: 'CourseItemController',
controllerAs: 'courseitem',
resolve: CourseItemController.resolve
});
我使用course
状态来执行某些业务逻辑并重定向到courseitem
状态。
我已经实现了一个位于courseitem
状态的导航栏,该状态包含课程的所有课程项目,并负责在用户点击一个课程时获取新课程项目。
我最大的问题是:如何不重新加载整个状态而只重新加载包含视频项的视图,以便不必重新加载导航栏?
例如,我想从/courses/courseA/video1
转到/courses/courseA/video2
,而无需重新加载旁边的导航。