我有一个调用 REST 服务的 angularjs 工厂服务。我的问题是目前 REST url 在工厂服务中是硬编码的。我想删除这个硬编码

(function () {
'use strict';

var auctionServices = angular.module('auctionService', ['ngResource']);


//TODO: USE BASE URL SO THAT CAN POINT TO LOCALHOST OR ACTUAL WEB SERVER
var baseUrl = "http://localhost:5037";

auctionServices.factory('auctions', ['$resource', function ($resource) {

    return $resource(baseUrl + '/services/rest/auctions', {}, {
        filter: {
            url: baseUrl + '/services/rest/auctions?location=:location&status=:status',
            isArray: true,
            params: { location: '@location', status: '@status' },
            withCredentials: true,
            cache: false
        },

我的问题是以下行
var baseUrl = "http://localhost:5037";

我需要从 web.config 设置 baseUrl 值,或者请帮助我使用任何其他更好的方法。

最佳答案

如果您的问题是将所有全局配置移动到单个文件中,您可以使用常量:创建一个 config.js 文件,如下所示:

angular.module('myApp').constant('configs', {
  baseUrl: 'http://localhost:5037'
})

然后在你的工厂注入(inject)配置:
auctionServices.factory('auctions', ['$resource', 'configs', function ($resource, configs){
}

configs.baseUrl 包含您的网址

关于AngularJS 读取 web.config 值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25186149/

10-16 22:56