javascript - 如何以 Angular 将参数传递给服务中的函数

标签 javascript angularjs angular-services

我正在尝试以 Angular 的形式将参数传递给服务,但是当我这样做时,Angular 完全崩溃了。

有人可以告诉我我做错了什么吗?

这是我的服务:

function AlertData($http){


var AlertData = {};
  var settings = {
    }
  }

  // Registering client by its reference, housnumber and postalcode
  AlertData.getData = function(reference, housnumber, postalcode) {//These paramaters are not comming through
    settings.url = "url";
    settings.data = { "data": { "attributes": { "reference": reference, "huisnummer": housnumber, "postcode": postalcode } } };
    return $http(settings);
  };

  return AlertData;
}

alertApp.factory('alertData', AlertData);

以及我尝试传递参数的 Controller 函数

// Registering client
  alertData.getData(clientReference, housnumber, post)
    .then(function(data){
      if(data.status==201){
        getClientByReference();
      } else {
        $scope.dataError = standaardError;
      }
    })
    .catch(function(data, status, headers, config){
      $scope.dataError = standaardError;
    });

更新 这是我遇到的错误

Error: [ng:areq] Argument 'fn' is not a function, got Object
http://errors.angularjs.org/1.4.7/ng/areq?p0=fn&p1=not%20a%20function%2C%20got%20Object
    at angular.js:68
    at assertArg (angular.js:1796)
    at assertArgFn (angular.js:1806)
    at Function.annotate [as $$annotate] (angular.js:3765)
    at Object.invoke (angular.js:4456)
    at Object.enforcedReturnValue [as $get] (angular.js:4330)
    at Object.invoke (angular.js:4478)
    at angular.js:4295
    at getService (angular.js:4437)
    at Object.invoke (angular.js:4469)

更新2 这就是我想做的: 在 C# 中,你可以这样做:使用函数创建一个服务,然后像这样调用它 myService.myFunction(myPararameters) 这是我喜欢用 Angular 实现的目标,但我不知道如何实现

最佳答案

我不知道你在哪里引用代码,但我还没有见过这种结构。

下面是大家通常用来定义工厂的内容

function AlertData($http) {
    var obj = {};
    // Registering client by its reference, housnumber and postalcode
    obj.getData = function(reference, housnumber, postalcode) {
        settings.url = "url";
        settings.data = {
            "data" : {
                "attributes" : {
                    "reference" : reference,
                    "huisnummer" : housnumber,
                    "postcode" : postalcode
                }
            }
        };
        return $http(settings);
    }

    return obj;
}

alertApp.factory('alertData', AlertData);

关于javascript - 如何以 Angular 将参数传递给服务中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42438745/

相关文章:

javascript - 关闭模态覆盖时无法隐藏消息框

javascript - 使用公司代理服务器的 Web 应用程序性能

javascript - AngularJS:按分组列表的总和排序

angular - 将数据从 subscribe() 传输到 Angular 6 中的变量

angular - 构建服务的正确方法是什么?

angular - 显示访客的注册/登录链接,登录时隐藏?

javascript - 从一台nodejs服务器到同一服务器中的另一台nodejs服务器调用函数

javascript - 如何将[object Object]传递给JS函数

javascript - 根据路径在 Controller 内使用 Angular 变量

javascript - ExpressJs - 如何使 api 文件在开发人员工具中不可读