我看了很多帖子,但没有一个有效: 我想使用 $ state.go 传递一些数据。
这是我的状态:
.state('app.404', {
url: '404',
views: {
'header@': {
templateUrl: 'views/empty.html'
},
'content@': {
templateUrl: '404.html',
controller: 'fofController'
},
'footer@': {
templateUrl: 'views/empty.html'
},
params: {errorInfo: null}
}
})
这是我传递数据的方式:
$state.go('app.404', {errorInfo: {status: 403, message: 'unauthorised', fix: 'You have to login'}});
这就是我尝试捕获控制器中数据的方式:
.controller('fofController', ['$scope', '$state',
function ($scope, $state) {
console.log($state.params);
}])
但答案是空对象( {} )。我也像下面一样使用 $ stateParams ,但我得到了相同的结果,一个空对象:
.controller('fofController', ['$scope', '$stateParams',
function ($scope, $stateParams) {
console.log($stateParams);
}])
答案 0 :(得分:0)
选项-1
.state('404.contact/', {
url: '/contact/:obj',
templateUrl: "contact.html",
controller: "contactCtrl",
params: {
obj: null,
}
})
.state('404.header', {
url: '/header/:number',
templateUrl: "header.html",
controller: "headerCtrl",
params: {
obj: null
}
})
选项-2
$state.go(.....
您应该尝试使用此代码
$state.transitionTo(...
选项-3
也许尝试使用网址转移
$stateProvider
.state('user', {
url: '/user/:obj',
templateUrl: 'templates/user.html',
controller: 'UserCont'
})
也许这些是解决问题的方法。