首先咱们了解一下ui-router.ide
ui-router引入状态机制,将路由抽象归纳成一个个的状态。其中状态里包含多种属性 state,url,params等多种内容。ui
state:当前路由所处的状态url
url:当前路由对应的url正则路径spa
params:传递的参数code
固然了还有views,templates,abstract等属性,但因为和传参无关,所以再也不介绍。router
在ui-router中,state能够映射对应url,一样的url也能够映射到state。咱们考虑的无非是使用blog
url或者state传值。路由
$stateProvider .state('home',{ url:'/home', params: '' } )
如上所示案例,当前state是home,url地址是/home。class
一、url传值route
url:'/home/:userID',
url:'/home/{userID}'
常见方法有:param或者{param}两种方式。如当咱们设置url ‘/home/235’时,能够获取userID=235的参数信息。
二、state传值
ui-sref='home({userID:235})'
$state.go('home',{userID:235})
常见的state传值的有以上两种,也能够归为一种,只是表面形式看起来不一样而已。
url传值,state传值 我的感受最大的区别时在于跳转的情境中。
如a页面将参数A传递到b页面,state传值想要正常打开b页面,只能从a页面进入,或者说从a页面的状态进入,不然便获取不到A参数。然而url传值则能够 不通过A页面直接获取到参数A。
三、params传参
咱们也能够直接定义params里的参数列表
params:{
userID:XXX
}
可是此种传参的方法局限性比较大,适合须要设置初始化值的参数,后续能够在controller中修改参数的取值。