Xma*_*re2 0 web-config angularjs web.config-transform
我有AngularJS控制器和服务,它们引用服务器1中托管的一部分代码。因此,要获取或发布数据,我必须引用
var getUsers = $resource('http://localhost:2211/projectname/users/getusers',
{
id: viewModel.user.Id
});
getUsers.get(function (result: users.usersResource)
{
if(result != null)
{
$scope.viewModel.firstName = result.firstName;
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是如何设置web.config文件来保存上面提到的网址,并从我的控制器或服务页面调用它,而不是每次执行发布或获取时都对网址进行硬编码。
请帮忙。
有一个比这更简单的方法,您可以直接从razor中读取javascript:
假设我希望_Layout.cshtml包含所有视图的值,因此请在您的cshtml中:
<!DOCTYPE html>
<html ng-app="WebAthena" ng-controller="AppController">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>@ViewBag.Title</title>
@Styles.Render("~/Content/css")
<script>
var WebApiBaseUri = '@System.Configuration.ConfigurationManager.AppSettings["WebApiBaseUri"]';
</script>
</head>
Run Code Online (Sandbox Code Playgroud)
请注意,在脚本中,我能够将razor中的c#代码注入javascript。我还用一对撇号“”包装了C#代码
当我运行代码时,这就是我的javascript的样子:
var WebApiBaseUri = 'http://localhost:40567';
Run Code Online (Sandbox Code Playgroud)
由于此脚本会尽早执行,因此angular可以将其识别为全局变量。
或者您可以在角度常数内注入它,因此可以将以上代码行更改为:
//var WebApiBaseUri = '@System.Configuration.ConfigurationManager.AppSettings["WebApiBaseUri"]';
app.constant("WebApiBaseUri", '@System.Configuration.ConfigurationManager.AppSettings["WebApiBaseUri"]');
Run Code Online (Sandbox Code Playgroud)
转换为:
//var WebApiBaseUri = 'http://localhost:40567';
app.constant("WebApiBaseUri", 'http://localhost:40567');
Run Code Online (Sandbox Code Playgroud)
然后您可以将此代码注入角度控制器,工厂,服务等
| 归档时间: |
|
| 查看次数: |
13463 次 |
| 最近记录: |