2017-02-24 75 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) –

相關問題