在Angular JS中的某个位置存储和管理应用程序的所有REST端点是否有最佳实践?
答案 0 :(得分:1)
在 AngularJS
中app.value('config', {
"baseUrl": "http://www.some.url"
});
并使用
访问它config.baseUrl + "/fetchAll.json"
不要忘记注入依赖
config
。
问候。
答案 1 :(得分:1)
我很习惯使用的Generic:
angular.module('myApp').factory('ConnectionService', function ($http, $log) {
var connectionurl = 'http://localhost:8000/Services.svc/';
return {
connectionurl: connectionurl,
getData:function(successCallBack){
$http({
method: 'GET',
/********HERE COMES YOUR REST WebGet or WebInvoke URI************/
url: connectionurl+ 'methodname'
})
.success(function (data, status, headers, config) {
successCallBack(data);
})
.error(function (data, status, headers, config) {
$log.warn(data, status, headers, config);
})
}
});
您可以在控制器中使用此ConnectionService作为
angular.module('myApp').controller('SampleController',
function ($scope,ConnectionService){
ConnectionService.getData(function(response){
$scope.object=response;
});
}
答案 2 :(得分:0)
根据this great document,您可以将它们存储为应用程序之外的常量。
您可以将此配置存储为
<强> env.js 强>
(function (window) {
window.__env = window.__env || {};
// Login page address
window.__env.loginUrl = 'http://website/login';
}(this));
然后将其指定为主模块中的常量
<强> app.js 强>
angular.module('yourmodule', [])
.constant('__env', __env)
然后你可以注入你的服务
loginData.$inject = ['$http', '__env'];
此类配置最适合我,易于管理和更改,具体取决于环境,无需重建应用程序。仅指定constant
并没有这样的优势。
答案 3 :(得分:0)
您应该尝试将$resource用于所有REST定义。