重构角度资源链接

时间:2016-09-25 14:10:01

标签: angularjs

基本上我有一个角度资源API服务如下。我使用下面的嵌套链接方法,我认为编码视角不太好(特别是当需要多个链接时)

angular.module('user')
.factory('UserAPI', ['$resource'],
    function ($resource) {
        return $resource('User', {},
        {
            GetUserDetail1: {
                method: 'GET',
                url: url1
            },
            GetUserDetail2: {
                method: 'GET',
                url: url2
            }
        }
    }
)

UserAPI.GetUserDetail1({ ID: id }).$promise.then(function (res) {
    UserAPI.GetUserDetail2({ ID: res.userID }).$promise.then(function (res1) {

    }, function (errRes1) {

    });
}, function (errRes) {

});

所以,我现在正在考虑重构代码如下,但我不确定是否可以这样做。

function getUserDetail2 (res) {

};

UserAPI.GetUserDetails1({ ID: id})
.then(getUserDetail2(res))
.catch(function (errRes) {
    // catch error if any error occur
});

1 个答案:

答案 0 :(得分:1)

你只需要传递函数的引用而不是在那里调用它。

UserAPI.GetUserDetails1({ ID: id})
.then(getUserDetail2) //passed getUserDetail2 method here
.catch(function (errRes) {
    // catch error if any error occur
});