请问 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来取