Che*_*hiz 11 javascript asp.net-mvc model razor typescript
使用MVC时,我有时会将服务器的模型数据传递给客户端JavaScript,使用注入JavaScript的Razor,如下所示:
<script type="text/javascript">
var myClientGuid = '@Model.MyServerGuid';
</script>
Run Code Online (Sandbox Code Playgroud)
这将JavaScript变量设置为myClientGuid服务器端模型属性的值MyServerGuid.当它到达客户端时,代码在浏览器中看起来像这样:
<script type="text/javascript">
var myClientGuid = 'EF0077AB-0482-4D91-90A7-75285F01CA6F';
</script>
Run Code Online (Sandbox Code Playgroud)
这允许外部JavaScript文件使用此变量.
我的问题是,在TypeScript中,由于 所有代码都必须通过外部文件引用,将服务器端字段传递给TypeScript代码的最佳方法是什么?外部代码文件不能包含Razor代码.我应该使用与上面相同的技术,在View中,在项目中混合使用JavaScript和Typescript吗?
小智 17
TypeScript编译器只需知道您的服务器端字段存在.最简单的方法是使用环境声明(参见规范第10节).例如,如果您有一个需要使用myClientGuid的.ts文件,那么您可以这样做
declare var myClientGuid: string;
Run Code Online (Sandbox Code Playgroud)
在主.ts文件的顶部.编译器不会为此var声明生成代码,因此您不会破坏任何内容.现在,任何引用该.ts文件的文件都会知道全局范围内有myClientGuid字符串.
| 归档时间: |
|
| 查看次数: |
6098 次 |
| 最近记录: |