2016-11-08 108 views
0

我是angular js 2 type脚本编程的新手。我试图找到一种方法来访问来自typescript的web.config的应用程序设置键。我不想在我的类型脚本中对数据进行硬编码,因为它们在不同的环境中有所不同。 TIA从Angular js 2 Typescript访问web.config appsettings

+0

使用C#阅读并通它给你的js。 – Shyju

+0

我创建了用于读取web.config值的C#类,但我不知道如何将这些值传递给我的打字稿文件。 – pradeep

+0

由于TypeScript被转换为JavaScript,您将无法读取配置文件。您可以使用Razor语法在脚本标记中注入适当的值,也可以编写Powershell脚本以在构建过程中替换值。 http://stackoverflow.com/questions/38000449/how-to-get-key-from-web-config-in-typescript/42015399#42015399 –

回答

1

Typescript被编译为JavaScript,稍后在使用web.config文件的应用程序上下文中执行。因此,您将无法在TypeScript级别读取配置。

你需要做的是使配置在运行时可用。换句话说,TypeScript生成的任何代码都需要知道在页面运行时可用的某个对象,它将为其提供任何可能需要的配置。

有几种方法可以做到这一点。

您可以让您的JS代码知道应始终存在于全局上下文中的对象(例如,当页面运行时,JS中的appConfig)。然后您可以使用设置填充此对象。 asuming Razor示例:

var appConfig = []; 
appConfig.adminEmail = '@ConfigurationManager.AppSettings["adminEmail"]'; 

然后,您的TypeScript代码可以在运行时依赖变量appConfig。

Alernatively,你能设备为您的网页来配置注入到你的打字稿生成的代码的方式:

var adminEmail; 

function SetAdminEmail(val: string) 
{ 
    adminEmail = val; 
} 

function DisplayAdminEmail() 
{ 
    alert(adminEmail); 
} 
在你的页面

然后:

<script type="text/javascript"> 
    SetAdminEmail('@ConfigurationManager.AppSettings["adminEmail"]'); 
    DisplayAdminEmail(); 
</script> 
+0

在这个例子中注入数据到主 - http:// plnkr.co/edit/ojaneZSSihUvkLmrpNkh?p=preview。挑战是在index.html中阅读appsettings配置数据。我们只是在没有mvc的客户端使用angular2。任何投入在此将不胜感激。 – Infoseeker