2017-02-24 13 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); 

そして、私はパラメータにUPDATE

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

あなたはこれを次のようにすることができます:このmyService.myFunction(myPararameters)のように呼び出す以外の関数を使ってサービスを作るこれは私がangleで達成したいのですが、私は方法がわからない

+0

ブレークを定義するために使用するものですか?あなたはもっと明確なpls、すなわち:任意のエラーをすることができますか? – 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)を参照してください。 –

関連する問題