我可以在angularjs模块配置方法中访问MVC web.config值吗?
如何将MVC web.config值传递给angular module config方法 我想使用MVC web.config中的参数设置$logProvider.debugEnabled值。这样,当我从Dev到Test再到Prod时,就不必记得更改设置了 我有用于传递可从角度控制器访问的参数的方法,但我需要在配置方法中使用它们 下面是我现在在app.js中的内容我可以在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
(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);
}
}]);
}());