javascript - 服务的 Angular 动态属性

标签 javascript angularjs

给定以下 angularjs 服务:

angular.module('myApp.services', [])
  .factory('EmployeesService', ['$http', function ($http) {
      return {
          name: 'Employees Service',
          getByTerm: function (term, callback) {
              $http.get('Services/GetEmployess?term='+term).success(function (data) {
                  callback(data);
              });
          }
      };
  } ]);

如何将 $http.get URL 设置为动态而不是硬编码?

最佳答案

不确定您希望网址的哪一部分是动态的,因此如果您希望“term=” + term 部分是动态的:

angular.module('myApp.services', [])
    .factory('EmployeesService', ['$http', function ($http) {
        return {
        name: 'Employees Service',
        getByTerm: function (params, callback) {
                var terms = [];

                //params example: {param1: "lorem", param2:"ipsum"}
                for(var key in params){
                    if(params.hasOwnProperty(key)){
                        terms.push(key + "=" + params[key]);
                    }
                }
                //terms now looks like this: ["param1=lorem", "param2=ipsum"]

                var url = 'Services/GetEmployess?' + terms.join("&");

                //url will look lik this: 'Services/GetEmployess?param1=lorem&param1=ipsum';

                $http.get(url).success(function (data) {
                    callback(data);
                });
            }
        };
    } ]);

如果您希望发布的实际网址是动态的,请将其作为另一个参数传递:

angular.module('myApp.services', [])
  .factory('EmployeesService', ['$http', function ($http) {
      return {
          name: 'Employees Service',
          getByTerm: function (url, term, callback) {
              $http.get(url+term).success(function (data) {
                  callback(data);
              });
          }
      };
  } ]);

如果这些都不是您想要的...您能详细说明您希望网址的哪一部分是动态的吗?

关于javascript - 服务的 Angular 动态属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14023752/

相关文章:

javascript - 有什么理由不使用 angular-loader 吗?

javascript - 如何在javascript中的switch case中插入if?

javascript - 单选按钮费用清算

javascript - Angular URL 标记

javascript - 单击时 ng-repeat 中的一个按钮会更改颜色,但并非所有按钮都使用 Angularjs

javascript - ionic 框架 animate.css slideInUp 和 SlideOutUp 动画不工作

javascript - 声明具有相对于其他字段的默认值的主干模型

javascript - Facebook 身份验证打开选项卡而不是 Chrome 59 中的弹出窗口

javascript - 如何将数据从可观察的主题推送到组件中的数组?

javascript - 使用 API 返回的数据创建有序列表