角UI,路由器默认状态问题

角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页面。