我可以在angularjs模块配置方法中访问MVC web.config值吗?

我可以在angularjs模块配置方法中访问MVC web.config值吗?,angularjs,asp.net-mvc-4,web-config,Angularjs,Asp.net Mvc 4,Web Config,如何将MVC web.config值传递给angular module config方法 我想使用MVC web.config中的参数设置$logProvider.debugEnabled值。这样,当我从Dev到Test再到Prod时,就不必记得更改设置了 我有用于传递可从角度控制器访问的参数的方法,但我需要在配置方法中使用它们 下面是我现在在app.js中的内容 (function () { var app = angular.module("myApp", ['configSett

如何将MVC web.config值传递给angular module config方法

我想使用MVC web.config中的参数设置$logProvider.debugEnabled值。这样,当我从Dev到Test再到Prod时,就不必记得更改设置了

我有用于传递可从角度控制器访问的参数的方法,但我需要在配置方法中使用它们

下面是我现在在app.js中的内容

(function () {

    var app = angular.module("myApp", ['configSettings']);

    app.config('settings', [function (settings, $logProvider) {
        var envr = settings.serverConfig;
        if (!envr == "LOCAL") {
          $logProvider.debugEnabled(false);
        }
    }]);

}());
提前感谢,


John

我正在为此使用自定义http处理程序:

public class JavascriptResourceHandler : IHttpHandler
{
    #region IHttpHandler Members

    public bool IsReusable
    {
        // Return false in case your Managed Handler cannot be reused for another request.
        // Usually this would be false in case you have some state information preserved per request.
        get { return true; }
    }

    public void ProcessRequest(HttpContext context)
    {
        var sb = new StringBuilder();
        sb.Append("var js = {};");
        sb.Append("js.settings = { ");

        var settings = ConfigurationManager.AppSettings.AllKeys.Where(k => k.StartsWith("JS_")).ToList();

        for (int i = 0; i < settings.Count; i++)
        {
            var key = settings[i];
            var name = key.Replace("JS_", string.Empty);
            var value = ConfigurationManager.AppSettings[key];
            sb.Append(name);
            sb.Append(":");
            sb.Append("'");
            sb.Append(HttpUtility.JavaScriptStringEncode(value));
            sb.Append("'");
            if (i != settings.Count - 1)
                sb.Append(",");
        }

        sb.Append("};");

        context.Response.Clear();
        context.Response.ContentType = "text/javascript";
        context.Response.Write(sb.ToString());
    }

    #endregion
}
你的例子是:

(function () {

    var app = angular.module("myApp", ['configSettings']);

    app.config('settings', [function (settings, $logProvider) {
        var envr = js.settings.serverAppSettingsKeyWithoutJSPrefix;
        if (!envr == "LOCAL") {
          $logProvider.debugEnabled(false);
        }
    }]);

}());

谢谢你的快速回复!
 <script src="~/JavascriptResourceHandler.axd"></script>
<add key="JS_Key" value="MyConfigValue" />
var myValue = js.settings.Key; // the JS_ prefix will be automatically removed
(function () {

    var app = angular.module("myApp", ['configSettings']);

    app.config('settings', [function (settings, $logProvider) {
        var envr = js.settings.serverAppSettingsKeyWithoutJSPrefix;
        if (!envr == "LOCAL") {
          $logProvider.debugEnabled(false);
        }
    }]);

}());