在Angular JS中管理REST端点?

时间:2016-08-23 08:42:55

标签: javascript angularjs rest

在Angular JS中的某个位置存储和管理应用程序的所有REST端点是否有最佳实践?

4 个答案:

答案 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定义。