2016-03-10 24 views
2

而不是使用ng.router我正在切換到我的angularjs應用程序中的ui.router。在angularjs中命名狀態ui-router

我在配置中遇到了關於狀態名稱的問題。當我使用'。'時狀態名稱中的字符,路由不起作用。當我在瀏覽器網址中輸入「localhost /#/ categories/5」時,下面給出的代碼不會路由到'views/subcategories.html'。

$stateProvider 
    .state('categories', 
     { 
      url:'/categories', 
      controller:'CategoriesController', 
      templateUrl:'views/categories.html' 
     }) 
    .state('sub.categories',{ 
      url:'/categories/:subID', 
      controller: 'SubCategoriesController', 
      templateUrl:'views/subcategories.html' 
    }); 

但是,當我使用'子類別'而不是'sub.categories'它的作品。我在問這個問題,因爲我看到州名是'。'在很多關於ui.router的教程中。我在這裏錯過了一些細節嗎?

回答

0

在ui路由器中,週期用於指示嵌套狀態。

使用sub.categories會使categories狀態爲sub狀態的孩子。

更多信息,可以發現here

2

在美國,你可以嵌套的國名點語法。嵌套狀態,從父狀態繼承params和url。

首先,你需要開始嵌套狀態的名稱,與父狀態:

'categories.sub' // instead 'sub.categories' 

然後到localhost /#/分類/ 5,設置你的嵌套狀態象下面這樣:

$stateProvider 
.state('categories', 
    { 
     url:'/categories', 
     controller:'CategoriesController', 
     templateUrl:'views/categories.html' 
    }) 
.state('categories.sub',{ 
     url:'/:subID', 
     controller: 'SubCategoriesController', 
     templateUrl:'views/subcategories.html' 
}); 

請注意,url中的狀態'categories.sub'不需要'/ categories',因爲這是繼承父狀態'categories'

相關問題