在MVC中使用AngularJs时,保持视图的强类型

本文关键字:视图 强类型 MVC AngularJs | 更新日期: 2023-09-27 18:05:47

我喜欢MVC的一个主要原因是视图和控制器都是强类型的。这意味着我可以使用Razor语法直接从视图调用模型中定义的变量:

<p>
    @Model.MyProperty // strongly typed
</p>
在此过程中,Visual Studio将提供智能感知、智能重构选项等。这样做的好处是显而易见的。

相反,如果我决定使用AngularJs(或任何其他客户端UI框架,实际上),我的视图将是这样的:

<p>
    {{myProperty}} // this is just a string!
</p>

没有智能感知,没有重构选项…这里我一个人呆着,因为IDE不知道{{myProperty}}是什么,也不知道它在哪里定义。换句话说,除了开发人员对应用程序的结构及其变量的名称的个人知识之外,视图、模型和控制器之间没有契约。

因为我所有的Angular模型都关联到一个Typescript接口,有没有什么工具可以在基于这些Typescript接口的视图中给我智能感知?

在MVC中使用AngularJs时,保持视图的强类型

在做了一些研究之后,似乎没有任何编辑器完全支持这个特定的功能(TypeScript中HTML中的智能感知)。然而,你可以在一些框架中安装插件来获得名称的自动完成功能(因为括号语法是特定于Angular和其他前端框架的);有VS, VS Code, WebStorm的扩展:

    Visual Studio
  • <
  • VS代码/gh>
  • WebStorm

,

同样,这篇博文可能不能解决你的问题,但如果你用不同的方法处理问题,可能会奏效:使用AngularJS的强类型视图