Javascript 使用多个$http.get的AngularJS服务
我正在尝试学习AngularJS,我有下面的服务可以使用,但是我想知道是否有更好的方法来编写它,它更简单,代码重复更少。你能想到什么吗 服务:Javascript 使用多个$http.get的AngularJS服务,javascript,angularjs,Javascript,Angularjs,我正在尝试学习AngularJS,我有下面的服务可以使用,但是我想知道是否有更好的方法来编写它,它更简单,代码重复更少。你能想到什么吗 服务: app.service("myService", function ($http) { this.callData1 = function () { var url = myurl1; function getData() { return $http.get(url);
app.service("myService", function ($http) {
this.callData1 = function () {
var url = myurl1;
function getData() {
return $http.get(url);
}
return {
getData: getData,
}
},
this.callData2 = function () {
var url = myurl2;
function getData() {
return $http.get(url);
}
return {
getData: getData,
}
},
this.callData3 = function () {
var url = myurl3;
function getData(var1, var2) {
return $http({
url: url,
method: "GET",
params: { var1: var1, var2: var2 }
});
}
return {
getData: getData,
}
}
});
我的控制器:
app.controller("myController", function ($scope, myService) {
myService.callData1().getData().then(function (response) {
$scope.var1 = response.data;
});
myService.callData2().getData().then(function (response) {
$scope.var2 = response.data;
});
var var1 = "something";
var var2 = "something else";
myService.callData3().getData(var1, var2).then(function (response) {
$scope.var3 = response.data;
});
});
您可以将其概括如下:
app.service("myService", function ($http) {
this.getData = function(url, method, params){
var httpParams = {
url: url,
method: method || "GET", // If method is skipped, use "GET" by default
params: params || {} // If no params are given, take {}
};
return $http.get(httpParams);
};
});
app.controller("myController", function ($scope, myService) {
var url = "https://blahblah";
myService.getData(url).then(function (response) {
$scope.var1 = response.data;
});
var params = {var1: "something", var2: "something2"};
myService.getData(url, "POST", params).then(function (response) {
$scope.var1 = response.data;
});
});
在controller中,您可以按如下方式使用此服务:
app.service("myService", function ($http) {
this.getData = function(url, method, params){
var httpParams = {
url: url,
method: method || "GET", // If method is skipped, use "GET" by default
params: params || {} // If no params are given, take {}
};
return $http.get(httpParams);
};
});
app.controller("myController", function ($scope, myService) {
var url = "https://blahblah";
myService.getData(url).then(function (response) {
$scope.var1 = response.data;
});
var params = {var1: "something", var2: "something2"};
myService.getData(url, "POST", params).then(function (response) {
$scope.var1 = response.data;
});
});
与你的问题无关,但为什么学习与否?AngularJS是V1,AngularJS实际上在V11中。引用自:“本网站及其所有内容都是指AngularJS(版本1.x),如果您正在寻找最新的AngularJS,请访问Angular.io。”