Angularjs 角度工厂、服务和控制器不与$Resource一起工作
我有一个角度服务,它只是我需要在控制器之间传递的变量的setter和getter:Angularjs 角度工厂、服务和控制器不与$Resource一起工作,angularjs,angular-resource,Angularjs,Angular Resource,我有一个角度服务,它只是我需要在控制器之间传递的变量的setter和getter: var MyApp = angular.module('MyApp', ['ngResource', 'ngRoute']) .service('userToken', function() { var userTokenProp; return { getter: function() { return userTokenProp;
var MyApp = angular.module('MyApp', ['ngResource', 'ngRoute'])
.service('userToken', function() {
var userTokenProp;
return {
getter: function() {
return userTokenProp;
},
setter: function(value) {
userTokenProp = value;
}
};
})
然后再往下一点,我试着在工厂中使用$resource,基于该令牌的值。还有另一个几乎相同的工厂能够设置令牌,但后一个工厂无法获取或使用令牌。我还需要在发出请求时将令牌发送到头中。我的代码是这样的,在尝试了许多其他方法将数据传递到工厂并在$resource中设置标题后,我决定使用这个表单:
.factory("apiQueryProfileFactory", function($resource, userToken) {
console.log("token: " + userToken.getter());
var uToken = userToken.getter();
var resource = $resource('http://localhost:3001/lsportal/api/v1/profile/:path', {}, {
get: {
method: "GET",
headers: {'token': uToken}
},
});
return resource;
});
然后从控制器(是的,通过工厂和服务):
只是不要明白我错过了什么,我已经一遍又一遍地想了一段时间了 此外,当应用程序首次加载时,工厂中的console.log也会启动!但在最初的“应用”声明之后,有一系列简单的工厂和服务,但问题可能是我把事情串错了。如果有人怀疑这一点,我很高兴发布整个声明。可能是Mmm的副本…不是真的没有。除了我们都在使用一种叫做“令牌”的东西之外,我们在描述一些不同的问题。另一张海报也没有试图调用angular服务,他试图将从localstorage提取的数据传递到标题中。您阅读了接受的答案吗?问题是一样的;创建工厂时,
$resource
操作头是静态的,uToken
是未定义的。使用头值的函数版本(实际上可以将其设置为headers:{token:userToken.getter}
),只需将其作为副本关闭即可。它为StackOverflow提供了更多的SEO,而不会弄乱答案空间。如果你想奖励分数,请投票选出可能属于或不属于我的重复问题和答案;)此外,当应用程序首次加载时,工厂中的console.log也会启动!但在最初的“应用”声明之后,有一系列简单的工厂和服务,但问题可能是我把事情串错了。如果有人怀疑这一点,我很高兴发布整个声明。可能是Mmm的副本…不是真的没有。除了我们都在使用一种叫做“令牌”的东西之外,我们在描述一些不同的问题。另一张海报也没有试图调用angular服务,他试图将从localstorage提取的数据传递到标题中。您阅读了接受的答案吗?问题是一样的;创建工厂时,$resource
操作头是静态的,uToken
是未定义的。使用头值的函数版本(实际上可以将其设置为headers:{token:userToken.getter}
),只需将其作为副本关闭即可。它为StackOverflow提供了更多的SEO,而不会弄乱答案空间。如果你想奖励分数,请投票选出可能属于或不属于我的重复问题和答案;)此外,当应用程序首次加载时,工厂中的console.log也会启动!但在最初的“应用”声明之后,有一系列简单的工厂和服务,但问题可能是我把事情串错了。如果有人怀疑这一点,我很高兴发布整个声明。可能是Mmm的副本…不是真的没有。除了我们都在使用一种叫做“令牌”的东西之外,我们在描述一些不同的问题。另一张海报也没有试图调用angular服务,他试图将从localstorage提取的数据传递到标题中。您阅读了接受的答案吗?问题是一样的;创建工厂时,$resource
操作头是静态的,uToken
是未定义的。使用头值的函数版本(实际上可以将其设置为headers:{token:userToken.getter}
),只需将其作为副本关闭即可。它为StackOverflow提供了更多的SEO,而不会弄乱答案空间。如果你想奖励分数,请投票选出可能属于或不属于我的重复问题和答案;)
apiQueryProfileFactory.get({path:'role'}, function(data) {
})