javascript - 具有动态路由的 Angular $http.get?

标签 javascript ajax angularjs

我是 Angular 的新手,我正在尝试了解如何使用范围变量从 REST API 进行查询以确定在 get 请求中提取的 URI。

假设我在我的 app.controller 中,它有一个服务可以输出一组数字..为了使代码最少,我将跳到重要的部分:

$scope.currentCompanyId = '0001';

$http.get('/api/'+ $scope.currentCompanyId +'/c').
  success(function(data, status, headers, config) {
    $scope.cData = data;
  }).
  error(function(data, status, headers, config) {
    // log error
  });

我知道这是作弊,因为 $http.get 在 Controller 中。我知道它需要是某种工厂..但我不知道如何将 $scope.currentCompanyID 传递给 get 请求并让它返回 JSON。此外,如果 $scope.currentCompanyID 更改为另一个数字,比如...'0002'.. $scope.cData 将如何更改以反射(reflect)新查询?

最佳答案

我不认为在 Controller 中使用 $http 是作弊 - 将其放入工厂/服务的一个原因是使其可重用。如果您只在一个地方做这件事,服务不会增加太多。

也就是说,您的服务可以返回一个带有参数的函数:

app.factory("service", function($http) {
     return {
          getCompany: function(companyId) { ...make $http call and return data... }
     }
});

然后在你的 Controller 中:

service.getCompany($scope.currentComanyId).then(function(resp) {...})

关于javascript - 具有动态路由的 Angular $http.get?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22814841/

相关文章:

javascript - 向 bison/jison 计算器语言添加函数

javascript - 传承值(value)

javascript - 如果您在请求触发后订阅它,是否有可能在 JS 中将异步事件设为 "miss"?

c# - 如何在按钮单击时调用异步?

javascript - 如何使用 for 循环迭代 Angular $scope 变量

javascript - 如何使用 jquery 向 ajax 调用添加参数?

javascript - Ajax错误403禁止CodeIgniter

extjs - 是否可以在 AngularJS 中使用 ExtJS 组件?

javascript - ng-repeat 在模型更改后不更新

javascript - 如何屏蔽一个 div 并使其所有子元素不可编辑