2017-02-24 79 views
0

我试图在角度上将参数传递给服务,但角度完全中断时,我正在做它。如何将角度的参数传递给服务中的某个功能

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

这是我的服务:

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); 

而且控制器功能,其中来自我尝试通过参数

// 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; 
    }); 

UPDATE 这是我得到

错误
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) 

UPDATE 2 这就是我想要做的: 在C#中,你可以这样做:使用函数来创建一个服务,而不是像这样调用它myService.myFunction(myPararameters)这是我喜欢用angular来实现的,但我不知道如何

+0

休息?你能更清楚地表明,即:任何错误? – Jax

+0

您不应该调用AlertData。 – estus

+0

@Jax请参阅我更新的问题 – apero

回答

1

我不知道你指的是代码,但我没有看到这种结构。

下面就是一般大家用它来定义一个工厂

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); 
+0

ahaaaa现在我明白我做错了什么。我一直在自己的内部调用函数。将AlerData更改为obj解决了问题。非常感谢 – apero

+1

我很高兴我的解决方案有所帮助。有关最佳做法,请参阅john papa的[角型指南](https://github.com/johnpapa/angular-styleguide/tree/master/a1) –

相关问题