Angularjs 使$http.get URL的一部分动态生成

Angularjs 使$http.get URL的一部分动态生成,angularjs,api,http,dynamic,service,Angularjs,Api,Http,Dynamic,Service,我从API中提取一个数组,如下所示: // in Service.... return $http.get( 'http://api.com/team/16110?Authorization=565eaa22251f932b9f000001d50aaf0b55c7477c5ffcdbaf113ebbda' ) .success(function(data) { return data; })

我从API中提取一个数组,如下所示:

  // in Service....

  return $http.get(
    'http://api.com/team/16110?Authorization=565eaa22251f932b9f000001d50aaf0b55c7477c5ffcdbaf113ebbda'
    ) 

        .success(function(data) { 
          return data; 
        }) 
        .error(function(err) { 
          return err; 
        }); 
这很好,但只适用于URL调用的一个数据数组。我希望能够通过修改URL的一部分来调用其他特定数组-
16110

我希望能够在这个$http调用中使用其他单独属性中的属性。我试过这个:

'http://api.com/team/' + $scope.thisId +'?Authorization=565eaa22251f932b9f000001d50aaf0b55c7477c5ffcdbaf113ebbda'
但这只是中断了服务

有没有一个相对简单的解决方案?我觉得我真的很接近,但无法破解它


更新-以下解决方案有效。。。
1.服务 2.控制器 3.答复.数据
我希望能从中取回一件物品。API URL很好,我已经直接尝试过了,它返回的数据还可以

id
从范围传递到服务:

app.factory("DataService", ["$http", function($http) {
    return {
        getTeamDetailsById: function(teamId) {
            return $http.get('path/to/api' + teamId + '?Auth=xxxx')
        }
    };
}]);
从控制器调用它:

DataService.getTeamDetailsById($scope.teamId).then(function(response) {
    //success callback
    $scope.teamDetails = response.data;
}, function(response) {
    //an error has occurred
});

id
从范围传递到服务:

app.factory("DataService", ["$http", function($http) {
    return {
        getTeamDetailsById: function(teamId) {
            return $http.get('path/to/api' + teamId + '?Auth=xxxx')
        }
    };
}]);
从控制器调用它:

DataService.getTeamDetailsById($scope.teamId).then(function(response) {
    //success callback
    $scope.teamDetails = response.data;
}, function(response) {
    //an error has occurred
});
这:

'http://api.com/team/“+”$scope.thisId“+”?授权=565eaa22251f932b9f000001d50aaf0b55c7477c5ffcdbaf113ebbda”

等于
http://api.com/team/$scope.thisId?Authorization=[…]
,这不是您想要的。删除
$scope.thisID
周围的引号,如下所示:

'http://api.com/team/“+$scope.thisId+”?授权=565eaa22251f932b9f000001d50aaf0b55c7477c5ffcdbaf113ebbda'

假设您已将
$scope.thisId
设置为要获取的任何资源的ID,则此操作将起作用。

此:

'http://api.com/team/“+”$scope.thisId“+”?授权=565eaa22251f932b9f000001d50aaf0b55c7477c5ffcdbaf113ebbda”

等于
http://api.com/team/$scope.thisId?Authorization=[…]
,这不是您想要的。删除
$scope.thisID
周围的引号,如下所示:

'http://api.com/team/“+$scope.thisId+”?授权=565EAA22251F932B9F000001D50AAF0B5C7477C5FFCDBAF113EBBDA'


假设您已将
$scope.thisId
设置为要获取的任何资源的ID,则此操作将有效。

服务没有$scope。只有控制器可以。请注意,success()和error()已被弃用,而且您使用它们的方式无论如何都是无用的。谢谢-我不知道success()和error()已被弃用。
$scope.teamDetails必须在DataService调用之外声明才能使用。我一直在玩弄它,无论我在哪个控制器中称之为“数据服务”,它都会崩溃。如果我在单页控制器中执行此操作,它将中断该页的所有数据绑定。如果我在MainController中调用它,整个站点就会崩溃。我一遍又一遍地重复它——它被注入控制器,我在索引页的脚本中调用它。似乎在某个地方语法有问题,但我不知道在哪里…我的错-它是一个放错地方的分号。现在可以了。非常感谢你!一直在努力解决这个问题,非常感谢您的帮助。服务没有$scope。只有控制器可以。请注意,success()和error()已被弃用,而且您使用它们的方式无论如何都是无用的。谢谢-我不知道success()和error()已被弃用。
$scope.teamDetails必须在DataService调用之外声明才能使用。我一直在玩弄它,无论我在哪个控制器中称之为“数据服务”,它都会崩溃。如果我在单页控制器中执行此操作,它将中断该页的所有数据绑定。如果我在MainController中调用它,整个站点就会崩溃。我一遍又一遍地重复它——它被注入控制器,我在索引页的脚本中调用它。似乎在某个地方语法有问题,但我不知道在哪里…我的错-它是一个放错地方的分号。现在可以了。非常感谢你!很长时间以来,我一直在努力解决这个问题,非常感谢你的帮助。对不起,这是一个打字错误。原稿上没有引用,仍然不起作用……对不起,那是个打字错误。它没有在原始的引用,仍然不起作用…这看起来像是完美的解决方案。。。但它不起作用!$scope.teamDetails变量似乎不包含任何数据。当我把它称为html中的一个表达式时,它什么也不做。我可以,但是有这么多相互依赖的文件-有没有办法将整个文件结构拖放到plunker中,或者你必须复制并粘贴每个文件?只有相关的代码。(1) 你的服务是什么样的?(2) 你的主控制器是什么样子的?(3) 您希望从
响应中得到什么。数据
?请参阅更新、添加的所有相关代码和回答的问题。这看起来是完美的解决方案。。。但它不起作用!$scope.teamDetails变量似乎不包含任何数据。当我把它称为html中的一个表达式时,它什么也不做。我可以,但是有这么多相互依赖的文件-有没有办法将整个文件结构拖放到plunker中,或者你必须复制并粘贴每个文件?只有相关的代码。(1) 你的服务是什么样的?(2) 你的主控制器是什么样子的?(3) 您希望从
回复中得到什么。数据
?请参阅更新、添加的所有相关代码和回复的问题。