我试图通过$ state.go()将对象传递给控制器。
app.js:
.state('class', {
url: '/class/:programId',
views: {
'content@': {
templateUrl: 'class.html',
controller: 'ClassController'
},
data: {
requireLogin: true
}
}
}).state('classLevel', {
url: '/classLevel',
views: {
'content@': {
templateUrl: 'partials/classLevel.html',
controller: 'ClassLevelController',
params: { obj: null }
},
data: {
requireLogin: true
}
}
})
控制器:
controllers.controller('ClassController', ['$scope', '$state', '$rootScope', '$stateParams', 'myService',
function($scope, $state, $rootScope, $stateParams) {
var myClass = myService.getList(url here);
myClass.then(function (data) {
// getting data here
});
$scope.loadClassLevel = function(summaryId, sessionId){
var CurrentDate = moment().unix();
var yourObj = {};
yourObj.currentTime = CurrentDate;
yourObj.summaryId = summaryId;
yourObj.sessionId = sessionId;
$state.go('patientFeelingLevel',{obj:yourObj});
}
});
controllers.controller('ClassLevelController', ['$scope', '$state', '$rootScope', '$stateParams',
function($scope, $state, $rootScope, $stateParams) {
console.log("$state :",$state);
});
我正在尝试将对象从 ClassController 传递到 ClassLevelController 。但是在console.log中我得到了
params: Object
obj: null
帮助我如何将该对象传递给下一个控制器( ClassLevelController 此处)。
答案 0 :(得分:1)
您不应使用$state
来访问您传递的参数,而是使用$stateParams
服务。
试试这个:
console.log("$stateParams :",$stateParams);
那是因为你的状态对象将始终与应用程序的开头相同。
Here是一个示例,表明$stateParams
正在发生变化,但$state
不是。