Javascript $stateParams对象的属性在我的服务中未定义
我试图在服务中获取$stateParams对象的属性,当我Javascript $stateParams对象的属性在我的服务中未定义,javascript,angularjs,Javascript,Angularjs,我试图在服务中获取$stateParams对象的属性,当我console.log($stateParams)时,它显示包含值的属性'playerId',但当我console.log($stateParams.playerId)时,它显示未定义的: app.factory('playerService', ['$http', '$state','$stateParams', function ($http, $state, $stateParams) {
console.log($stateParams)
时,它显示包含值的属性'playerId',但当我console.log($stateParams.playerId)
时,它显示未定义的:
app.factory('playerService', ['$http', '$state','$stateParams',
function ($http, $state, $stateParams) {
var playerId = $stateParams.playerId;
console.log($stateParams); // logs - object{ playerId:"555"}
console.log($stateParams.playerId); // logs - undefined
}
这是我的状态:
$stateProvider
.state('headless' , {
abstract: true,
url: "/:playerId",
resolve: {
liveData: function (playerService, $stateParams) {
var live = playerService.getLive($stateParams.playerId);
return live;
}
},
data: {
headless: true
}
}.state('player.live', {
url: "^/live/:playerId",
templateUrl: "views/main_live_video_chat.html"
})
你知道发生了什么吗?也许你有输入错误,这段代码和你在项目中的代码一样,你复制粘贴了吗?我想你正在试图在状态准备好之前访问
$stateParams
。。。问题是,为什么在工厂中使用$stateParams
?如果你能更详细地描述一下你的问题或者你想做什么,我可以帮你找到另一种解决方法。。。不管怎样,看看这篇文章你是对的,小熊。当我将声明移动到服务中的一个函数中时,它工作得很好,谢谢!