AngularJS无法调用未定义的方法'getValue'

时间:2014-01-20 12:26:06

标签: angularjs methods service undefined factory

我遇到了angularJS的问题,我有两个工厂,当我想在另一个工厂调用一个工厂的方法时,我得到这个错误: TypeError:无法调用未定义的方法'getValue'

我的两家工厂:

technoServices.factory('Shared',
    function(){
        var Shared={};
        Shared.setValue=function(header){
                Shared.header = header;
            }
        Shared.getValue=function(){

                return Shared.header;
            }
        return Shared;
        });

technoServices.factory('Config',['$resource','Shared',
  function($rootScope,$resource,token,Shared){

return $resource('../../rest/config',null,{
    get: {
        method:'GET',
        headers:{'X-Token':''+Shared.getValue()},
        isArray:false}
});
}]);

错误发生在我这样做时:Shared.getValue()

1 个答案:

答案 0 :(得分:2)

在Config工厂定义中,注入数组与函数的参数不匹配。您声明了两个元素,而您的函数签名需要四个参数,因此最后两个将是未定义的。

technoServices.factory('Config',['$resource','Shared',
  function($rootScope,$resource,token,Shared){

类似的东西:

technoServices.factory('Config',['$rootScope', '$resource', 'token', 'Shared',
  function($rootScope,$resource,token,Shared){