在angularjs中进行多个api调用的正确方法是什么

时间:2015-09-09 05:50:30

标签: angularjs angularjs-scope angular-resource

这是在angularjs

中使用$ resource进行多次调用的唯一方法吗?
var User = $resource('/user/:userId', {userId:'@id'});

User.get({userId:123}, function(user) {
  user.abc = true;
});

或者我们可以做这样的事情 -

mainApp.factory('service', [ '$resource',
function($resource) {
    var data = $resource('user', {

    }, {
        signUp : {
            url : '/api/signup',
            method : "POST"
        },
        message : {
            url : '/api/messages',
            params : {id : "@id"},
            method : "GET"
        },
    });
    return data;
}]);

并在控制器中

mainApp.controller('userController', ['$scope', 'service',
function($scope, service) {

    $scope.messages = function() {
            service.message({id: id}, function(userData) {
            console.log(userData);
        }
    }

    $scope.messages();
}]);

还是有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

我认为你可以这样做:

mainApp.factory('service', [ '$resource',
function($resource) {
    var data = $resource('/api/:path', {
        path: '@path'
    }, {
        signUp : {
            params : {path: 'signup'},
            method : "POST"
        },
        message : {
            params : {path: 'messages'},
            method : "GET"
        },
    });
    return data;
}]);