访问使用$ resource的AngularJs服务方法时出错

时间:2014-10-02 06:09:41

标签: angularjs angularjs-service

我是angularjs的新手,并试图访问一个使用$ resource来调用我的rest api的服务方法。但是,当我试图访问它给出错误。当我尝试访问不使用$ resource的方法时,它工作正常。

这是我的代码。

app.factory('userService', ['$resource',
    function($resource) {        
        var factory = {};

        factory.authenticatedUser;

        factory.test = function(){
            return "Test";
        };

        factory.getLoggedInUser = function(){ 
            $resource('api/user', {}, {
                query: {method: 'GET'}
            });
        };

        factory.getAuthenticatedUser = function(){
                return factory.authenticatedUser;
        };

        factory.setAuthenticatedUser = function(user){
                factory.authenticatedUser = user;
        };

        return factory;
    }]);

这里是我试图访问该方法的方法。

userService.getLoggedInUser.query(function(loggedInUser) { 

});

这会引发以下错误。

TypeError: userService.getLoggedInUser.query is not a function 

但这很好用。

var text = userService.test(); 

我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

您需要添加$符号。并从函数

返回$ resource对象
factory.getLoggedInUser = function(){ 
        return $resource('api/user', {}, {
            query: {method: 'GET'}
        });
    };

userService.getLoggedInUser().$query(function(loggedInUser) { 
});