ionic里面ui-router的一些奇葩问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ionic里面ui-router的一些奇葩问题相关的知识,希望对你有一定的参考价值。
在使用路由的时候,不能避免的肯定是要定义和传递参数的,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这种方式就行了
以上是关于ionic里面ui-router的一些奇葩问题的主要内容,如果未能解决你的问题,请参考以下文章
使用 Angular UI-Router 在 Ionic 框架中将状态作为新路由处理