angularjs ui-router傳值

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

相關文章
相關標籤/搜索