Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 角度工厂、服务和控制器不与$Resource一起工作_Angularjs_Angular Resource - Fatal编程技术网

Angularjs 角度工厂、服务和控制器不与$Resource一起工作

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;

我有一个角度服务,它只是我需要在控制器之间传递的变量的setter和getter:

  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) {

})