0

我正在進入Angular,並發現它的幾個偉大的用途。我使用Angular UI-Router爲客戶端構建了自定義導航。這是非常直接的,但我想知道是否有一個「更簡潔」的方式來做到這一點。有沒有更清潔的方式來使用ui路由器使用角度ui嵌套路由?

這裏是我的我的代碼我目前使用:

angular.module('website', ['ui.state']).  
config(function($stateProvider, $routeProvider){ 
$stateProvider 
    .state('index', { 
     url: "", // root route 
     views: { 
      "viewA": { 
       templateUrl: "partials/home.html" 
      }, 

     } 
    }) 
    .state('route1', { 
     url: "/route1", 
     views: { 
      "viewA": { 
       templateUrl: "partials/sticks.html" 
      }, 
     } 
    }) 
    .state('route2', { 
     url: "/route2", 
     views: { 
      "viewA": { 
       templateUrl: "partials/apparel.html" 
      }, 

     } 
    }) 
    .state('route3', { 
     url: "/route3", 
     views: { 
      "viewA": { 
       templateUrl: "partials/bauer.html" 
      }, 

     } 
    }) 
    .state('route4', { 
     url: "/route4", 
     views: { 
      "viewA": { 
       templateUrl: "partials/bauer-vapor.html" 
      }, 

     } 
    }) 
}) 

這是僅適用於嵌套導航一個級別。如果我在每個關卡中都有幾個鏈接或項目,這將會是一段漫長而雜亂的代碼。有沒有更簡潔,更簡單的方法來編碼,所以我沒有超長的所有頁面的列表和他們要去的地方?

我很喜歡這樣做,我只是認爲必須有一個更好,更乾淨的方式來做到這一點。

+0

這可以通過使用一個數組來定義所有傳遞給.state()調用的值,然後你可以在數組上使用一個循環來創建.state調用,這會縮短事情的時間(取決於你的時間長度列表真的得到了),但你仍然會有一個相當混亂的陣列來維持我的想法,所以這可能會更好。我認爲另一種方法是隻定義主列表,然後在頂層視圖中定義該視圖的每個子級導航元素?只是吐痰的想法。 – shaunhusain

回答

0

命名您的視圖是可選的,特別是如果你只有一個我建議使用未命名的視圖。你應該深入研究UI路由器維基和指南。項目的主要自述文件也剛剛更新。現在它顯示了一個嵌套狀態的快速入門示例,它實際上是一個更常用的功能。在大多數情況下,多個命名視圖確實不是必需的。

從本質上講,你會縮短每個狀態聲明:

.STATE( '路徑3',{ URL: 「/路徑3」 templateUrl: 「諧音/ bauer.html」 })