首先咱們瞭解一下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中修改參數的取值。