我喜欢 MVC 的主要原因之一是 View 和 Controller 都是强类型的。这意味着我可以使用 Razor 语法直接从 View 调用模型中定义的变量:
<p>
@Model.MyProperty // strongly typed
</p>
与此同时,Visual Studio 将提供智能感知、智能重构选项等。其优势显而易见。
相反,如果我决定使用 AngularJs(或任何其他客户端 UI 框架,实际上),我的 View 将如下所示:
<p>
{{myProperty}} // this is just a string!
</p>
没有 intellisense,没有重构选项...我一个人呆在这里,因为 IDE 不知道 {{myProperty}}
是什么以及它的定义位置。换句话说,除了开发人员对应用程序结构及其变量名称的个人知识外, View 、模型和 Controller 之间没有任何契约。
由于我所有的 Angular 模型都与一个Typescript 接口(interface)相关联,是否有任何工具可以在基于这些 Typescript 接口(interface)的 View 中提供智能感知?
最佳答案
经过一些研究,似乎没有任何编辑器完全支持此特定功能(HTML for TypeScript 中的智能感知)。但是,您可以在某些中安装插件以获得名称的自动完成功能(因为括号语法特定于 Angular 和其他前端框架);有 VS、VS Code、WebStorm 的扩展:
--
此外,这篇博文可能无法解决您的问题,但如果您以不同的方式解决问题,可能会奏效: Strongly Typed Views with AngularJS
关于c# - 在 MVC 中使用 AngularJs 时保持 View 的强类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39333405/