2014-10-19 36 views
1

我試圖安裝角路/國是這樣工作的:角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,如果這是有道理的。

任何方向將不勝感激,包括是否有更好的方法來實現我想要的。

回答

0

發現了問題 - 我是做兩件事情錯:

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頁面。