在AngularJS中动态绑定$http服务的URL参数



如何动态填充AngularJS$HTTP服务用于HTTP请求的URL字符串中定义的占位符?

var urls = {
    GET_USER: '/api/v1/group/{groupId}/user/{userId}',
    GET_USER_POSTS: '/api/v1/group/{groupId}/user/{userId}/posts',
    GET_USER_POST: '/api/v1/group/{groupId}/user/{userId}/post/{postId}'
};
function getUser(groupId, userId) {
    var url = urls.GET_USER; // build URL with passed params somehow
    return $http.get(url);
}

通用函数,它接受第一个参数作为带有占位符的URL,并使用传递的参数构建URL字符串

function buildUrl(url) {
    if (arguments.length > 1) {
        var args = arguments, i = 1;
        return url.replace(/{w+?}/g, function () {
            return args[i++];
        });
    }
    return url;
}

用法:

var url = buildUrl(urls.GET_USER, groupId, userId);

最新更新