我正在尝试以 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/