私の知る限り、クライアント サイト (javascript など) から web.config 情報を取得することはできません。そのため、角度を付けて web.config を調べて URL を取得することはできません。
$ressource url のように、Angular で参照できる URL のオブジェクト/リストが必要で、URL を web.config またはコードの分離コードに格納する必要がある場合は、次を返すハンドラを作成することをお勧めします。そこから値が設定された角度定数。
解決策 1 (サーバー側)
以下に例を示します。
namespace App.Handlers
{
public class ApiUrls : IHttpHandler
{
public class UrlItems
{
// Properties here doesn't need to be const. They can be taken from the web.config it you want to
public string GetUsers = "http://localhost:2211/projectname/users/getusers";
public string AddUser = "http://localhost:2211/projectname/users/add";
public string UpdateUser = "http://localhost:2211/projectname/users/update";
}
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "application/javascript";
var serializer = new JavaScriptSerializer();
var script = string.Format(@"
(function() {{
'use strict';
angular
.module('YOUR_MODULE_NAME_HERE')
.constant('ApiUrls', {0});
}})();
",
serializer.Serialize(new UrlItems()));
context.Response.Write(script);
}
}
}
そして、web.config のいくつかのコードを html ファイルに含めることができます。
<system.webServer>
<handlers>
<add path="/js/ApiUrls.js" name="App.Handlers.ApiUrls" type="App.Handlers.ApiUrls, App, Version=1.0.0.0, Culture=neutral" verb="GET" />
</handlers>
</system.webServer>
次に、その定数をコントローラー、サービス、ファクトリーなどに注入して、そこから値を取得できます。
angular
.module('YOUR_MODULE_NAME_HERE')
.controller('UserController', ['ApiUrls', function(ApiUrls) {
var getUsers = $resource(ApiUrls.GetUsers,
{
id: viewModel.user.Id
});
}]);
解決策 2 (クライアント側のみ)
または、より単純に、URL のリストだけが必要で、コードビハインドまたはクライアント側に保存されているかどうかを気にしない場合は、角度定数を追加して html に含め、ハンドラーを忘れてください。次に、以下のようなものを含む js ファイルを作成します。
(function() {
'use strict';
angular
.module('YOUR_MODULE_NAME_HERE')
.constant('ApiUrls', {
GetUsers: "http://localhost:2211/projectname/users/getusers",
AddUser: "http://localhost:2211/projectname/users/add",
UpdateUser: "http://localhost:2211/projectname/users/update"
});
})();
次に、ファイルをhtmlファイルに含めます
<script src="/StaticFiles/ApiUrls.js"></script>
コード内のプロパティ名を別の名前に変更した場合でも、angular でも変更する必要があることを覚えておいてください。
私が助けてくれることを願っています:)