我想在UI路由器中使用parent.child
表示法繼承狀態/ URL。我不想繼承視圖(或在其他視圖內嵌套視圖),或繼承控制器,我只想繼承URL。我使用'ui.router'作爲依賴項。Angular UI路由器:僅繼承URL(使用parent.child狀態),但不嵌套視圖
這是路由器的一個例子:
$stateProvider
.state('products', {
url: '/products',
templateUrl: 'view1.html',
controller: 'products#index'
})
.state('products.show', {
url: '/:id',
templateUrl: 'view2.html',
controller: 'products#show'
})
.state('products.buy', {
url: '/:id/:moreParams',
templateUrl: 'view3.html',
controller: 'products#buy'
})
.state('products.sell', {
url: '/:id/:moreParams/:moreParams',
templateUrl: 'view4.html',
controller: 'products#sell'
});
和控制器是:
angular.module('productsModule', [])
.controller('products#index', function($scope){
})
.controller('products#show', function($scope){
})
.controller('products#buy', function($scope){
})
.controller('products#sell', function($scope){
})
在這裏,所有的觀點是完全不同的,我不希望任何嵌套視圖內任何其他觀點。而且,所有的控制器也不同,我不想繼承控制器,它們都是獨立的,具有不同的功能。
這是我的預期結果。我想實現的是角,讓我只繼承網址,因此網址變爲:
/products
/products/:id
/products/:id/:moreParams
/products/:id/:moreParams/:moreParams
(然後讓每個URL自己的視圖和控制器,如上所述)
到目前爲止,它是不工作,我的研究開始告訴我,這種使用parentState.childState
的繼承只適用於想要嵌套視圖(這是我不想要的,我只想重新使用URL)。
我的解決方法是創建像products_show
這樣的路由器URL,即使用下劃線而不是點,所以它們被視爲新的獨立URL而不是繼承。我不確定這是否是最好的主意,主要是因爲它看起來很醜(儘管它完美地起作用)。
也許我應該只使用products_show
萬一不能用點來完成?想法?
我不知道你在更多參數/產品/意思:ID /:更多參數 /產品/ :id /:moreParams /:moreParams – MayK
moreParams可能是任何東西,它只是使一個URL不同。它可能只是網址:'/:id/different/URL', –