我想通过UI-Router中的$state.go()传递一个自定义对象到另一个状态.
var obj = {
a: 1,b: 2,fun: function() {
console.log('fun');
}
}
$state.go('users',obj);
但是我需要在目标状态下运行fun(),所以我不能在URL参数中传递这个对象.在目标控制器中,我试图通过$stateParams获取obj的值,但是获得空对象{}:
function UserCtrl($stateParams) {
conrole.log($stateParams); // empty
}
那么如何将obj传递给状态“用户”呢?
使用如下参数定义状态:
$stateProvider
.state('user',{
url: '/user',params: {
obj: null
},templateUrl: 'templates/user.html',controller: 'UserCont'
})
当这样调用pass参数时:
$state.go('user',{obj: myobj});
在控制器UserCon接收参数如下:
$state.params.obj
user $state是控制器中定义的参数之一
function UserCon($scope,$http,$state){