在使用路由的時候,不能避免的肯定是要定義和傳遞參數的,ui-router定義參數的方式好像有三種、這里我常用的兩種就夠用了
第一種
.state('tab.goodsList', {
url: '/goodsList/:typeId/:title',
cache:false,
views: {
'tab-catalog': {
templateUrl: './templates/catalog/goodsList.html',
controller: 'GoodsListCtrl'
}
}
})
第二種
.state('goodsDetail', {
cache:false,
url: '/goodsDetail?id&state',//state有三種狀態,有0或者不傳是普通的、 1最新揭曉,2已經揭曉,
templateUrl: './templates/detail/detail.html',
controller: 'GoodsDetailCtrl'
})
不同的方式在ui-self和href時傳值的時候是不一樣、這個注意一下就好、
在ionic中使用?id&type這種方式定義參數、然后傳值、在頁面跳轉和返回的時候會有點問題、這個問題不好描述、就是商品分類點擊不同分類進入列表。然后點擊進入商品詳情、從商品詳情返回到分類列表的時候就會有問題、本來分類商品列表頁的返回按鈕應該是返回到首頁的、但是此時卻顯示分類列表的標題
也就是當前分類列表頁面的鏈接、導致怎么都返回不到首頁
在用/:id/:type這種方式的時候又遇到一種問題
請看url
第一級 http://localhost:8016/#/goodsDetail/0 這個路由定義是 /goodsDetail/:id/:state
第二級http://localhost:8016/#/goodsDetail/share?id=0 這個路由定義是/goodsDetail/share/:id
然后我在第二級的頁面f5刷新的時候頁面竟然渲染的是第一級的內容 。、是不是很奇葩、我想了一下不知道是不是因為定義的路由 /個數一樣的問題、、、他把share也當成參數了。。。。
反正我是遇到了這種奇葩問題、然后我就改成 /goodsDetail/share?id這種方式就行了
