gpt4 book ai didi

javascript - 服务的 Angular 动态属性

转载 作者:行者123 更新时间:2023-11-28 09:28:16 25 4
gpt4 key购买 nike

给定以下 angularjs 服务:

angular.module('myApp.services', [])
.factory('EmployeesService', ['$http', function ($http) {
return {
name: 'Employees Service',
getByTerm: function (term, callback) {
$http.get('Services/GetEmployess?term='+term).success(function (data) {
callback(data);
});
}
};
} ]);

如何将 $http.get URL 设置为动态而不是硬编码?

最佳答案

不确定您希望网址的哪一部分是动态的,因此如果您希望“term=” + term 部分是动态的:

angular.module('myApp.services', [])
.factory('EmployeesService', ['$http', function ($http) {
return {
name: 'Employees Service',
getByTerm: function (params, callback) {
var terms = [];

//params example: {param1: "lorem", param2:"ipsum"}
for(var key in params){
if(params.hasOwnProperty(key)){
terms.push(key + "=" + params[key]);
}
}
//terms now looks like this: ["param1=lorem", "param2=ipsum"]

var url = 'Services/GetEmployess?' + terms.join("&");

//url will look lik this: 'Services/GetEmployess?param1=lorem&param1=ipsum';

$http.get(url).success(function (data) {
callback(data);
});
}
};
} ]);

如果您希望发布的实际网址是动态的,请将其作为另一个参数传递:

angular.module('myApp.services', [])
.factory('EmployeesService', ['$http', function ($http) {
return {
name: 'Employees Service',
getByTerm: function (url, term, callback) {
$http.get(url+term).success(function (data) {
callback(data);
});
}
};
} ]);

如果这些都不是您想要的...您能详细说明您希望网址的哪一部分是动态的吗?

关于javascript - 服务的 Angular 动态属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14023752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com