如何以及在何处为我的 angular 资源定义默认域?

How and where to define a default domain for my angular resource?

我在哪里可以并且应该为我的 angular 资源定义一个默认 url,这样我就不必为每个 api 端点提供一个绝对 url我有吗?

(我使用的 api 在同一个域中,但有一个子域:http://api.myapp.app/api/v1

我是 angular 的新手,我非常努力地想获得透彻的理解,所以如果有人也能向我解释答案背后的 "why",我将非常感激。

如果您使用像 grunt 这样的构建系统并且您的部署服务器会发生变化,我会调查 grunt-ng-constant

否则,您可以简单地在您的应用配置中定义一个常量,例如:

angular
    .module('app', [])
    .constant("ENV", {
        "ApiEndpoint": "somedomain.com"
    });

然后你可以像这样传递它:

angular.module('app').controller('SomeCtrl', function(ENV) {
    // ENV.ApiEndpoint
});

本身并不是真正的默认值,但至少您不需要在每个资源中手动输入您的基域,您只需要引用 ENV.ApiEndpoint

您可以在主 html 文件的头部使用它: <base href="/base-url">

如 angularjs 文档中所述 here ..向下滚动到 Relative Links