状态

时间:2015-11-01 00:06:51

标签: javascript angularjs angular-ui-router

我目前无法理解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 ,而无需重新加载旁边的导航

PS:我知道嵌套状态是必须的,但我根本无法理解它,所以我一次做一件事更容易。

0 个答案:

没有答案