請問 angular-ui-route 中的
$state.go('xxx',{id:'1'})
只能傳遞這種簡單字串嗎? 我想傳object該怎麼傳 用全域變數嗎?
不只能傳簡單的字串, 當然能傳object了
router配置中標示參數的名字. 以ui-router為例
$stateProvider.state('state1', { url: '/path/:id', // 这个地方用简单字符串 templateUrl: '/path/to.html', params: { obj: null // 这个地方就可以随便你用了. 因为这个参数没在state的url中体现出来 } }).
使用$state進行頁面切換
$state.go('state1', { id: '22', obj: { key: 'value' } });
在controller中使用$stateParams中取得參數
console.log($stateParams.obj)
當然傳遞這種在url中沒有體現的參數, 會在後退等操作時, 參數不可用.
可以用@whosesmile 的方法進行操作. 使用service. LZ可以看一下angular內建的$cacheFactory. 使用这个可以生成一个缓存, 执行put get remove removeAll等操作
$cacheFactory
put get remove removeAll
http://stackoverflow.com/a/25999849/2586541
通常兩個方案 1.全域變量,也就是使用$rootScope 2.使用service,因為service是單一實例,不會銷毀,所以你可以定義一個通用的快取資料service用來存取數據,在需要傳遞資料的controller裡呼叫service.set(key,value) ,在需要讀取前次資料的controler裡呼叫service.get('key')
忘記在哪個版本ui-router新增瞭如下方法,可保持url中的參數1.$state
$state.go("state",{datas:{ID:data1,NAME:data2}})
2.設定router
.state('state',{ url:'path/{datas:json}', params:{'datas':null}. ... })
3.用$stateParam.datas來取
不只能傳簡單的字串, 當然能傳object了
router配置中標示參數的名字. 以ui-router為例
使用$state進行頁面切換
在controller中使用$stateParams中取得參數
當然傳遞這種在url中沒有體現的參數, 會在後退等操作時, 參數不可用.
可以用@whosesmile 的方法進行操作. 使用service. LZ可以看一下angular內建的
$cacheFactory
. 使用这个可以生成一个缓存, 执行put get remove removeAll
等操作http://stackoverflow.com/a/25999849/2586541
通常兩個方案
1.全域變量,也就是使用$rootScope
2.使用service,因為service是單一實例,不會銷毀,所以你可以定義一個通用的快取資料service用來存取數據,在需要傳遞資料的controller裡呼叫service.set(key,value) ,在需要讀取前次資料的controler裡呼叫service.get('key')
忘記在哪個版本ui-router新增瞭如下方法,可保持url中的參數
1.$state
2.設定router
3.用$stateParam.datas來取