簡體   English   中英

在Angular JS中管理REST端點?

[英]Managing REST endpoints in Angular JS?

是否有最佳實踐在Angular JS的一個位置存儲和管理應用程序的所有REST端點?

AngularJS中

app.value('config', {
  "baseUrl": "http://www.some.url"
});

並使用

config.baseUrl + "/fetchAll.json"

不要忘記注入依賴項config

問候。

我願意使用的通用類:

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;
          });
}

根據這份出色的文檔 ,您可以將它們存儲為應用程序外部的常量。

您可以將這樣的配置存儲為

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沒有這種優勢。

您應該嘗試將$ resource用於所有REST定義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM