【问题标题】:AngularJS Intellisense in Visual Studio 2015Visual Studio 2015 中的 AngularJS 智能感知
【发布时间】:2016-08-16 12:04:50
【问题描述】:

最近我开始使用 Visual Studio 2015 Community 而不是括号。正如网站上所说,它对 Angular 有某种支持,但是,我什至在任何地方都没有看到它,而不是 HTML 文件。 即使是可变的“角度”,在悬停时也会打印

angular <type unknown>

我添加了一张图片来解释我的意思。

我尝试将 JavaScript 文本编辑器引用更改为隐式 (Web),但是在重新启动后,它又回到隐式 (Windows)。

我使用 Web Essentials,我知道它具有创建 Intellisense JS 和 TS 文件的功能,但是,此功能始终被禁用。我打开了我项目中的每个目录并检查了一下,这个功能一直是关闭的。

此外,我尝试使用 _references.js 手动创建 Scripts 目录,但它的工作原理非常好……baaad,我需要将其移动到另一个目录并将其返回到以前的目录以使自动同步等选项可用。 _references.js 也是如此

为了让这个案例更简洁: 我手动创建 _references.js。现在它有它的 Anto-Sync 和 Update References 选项。 —> 重新启动 Visual Studio 2015 —> _references.js 不再有这样的选项。 但是,即使在重新启动之前,如果我对其进行更新,它也会跳过根文件夹中除 app.js 之外的所有内容。

附: AngularJS IntelliSense 在 HTML 文件中工作,即我可以放置 ng-* 属性。所以......我认为,这在 VS 2015 中是行不通的。 P.S.S.我将 NodeJS 用于 WebApp 的服务器部分。

【问题讨论】:

    标签: javascript angularjs node.js visual-studio-2015 intellisense


    【解决方案1】:

    您是否尝试在需要 Intellisense 的 js 文件的开头使用它?

    /// <reference path="pathToAngular.js" />
    

    https://msdn.microsoft.com/en-us/library/bb385682.aspx

    【讨论】:

    • 我试试,引用后我应该重启VS吗?
    • 为了让这个案例更清晰:我手动创建 _references.js。现在它有它的 Anto-Sync 和 Update References 选项。 —> 重新启动 Visual Studio 2015 —> _references.js 不再有这样的选项
    • 我没用过那个功能。但是,如果您只是将参考线放在文件的开头,“connect.js”基于您的图像,则无需重新启动它应该立即开始工作
    【解决方案2】:

    好吧,我了解到您正在寻找一种与 Instellisense 和 Visual Studio 一起工作的解决方案,无论如何。

    我也在使用 Visual Studio,但我开始使用 TypeScript。它实际上是在编写一种扩展的强类型 JavaScript。这意味着您可以声明变量的类型。示例: var x:string = 'test';

    课程有优点也有缺点。我喜欢它的优点,这就是我使用它的原因。

    1. 您必须编译您的代码。理解为解析您的 Javascript 以进行错误检查以及将 *.ts 文件转换为 *.js 文件的过程。
    2. 您可以添加 header 文件。您曾经开发过 C/C++ 应用程序吗?那么,在 TypeScript 中你可以添加定义,或者 *.d 文件,它们实际上只是用于检查 JavaScript 函数定义的头文件。
    3. Visual Studio 上的 TypeScript 使用 Intellisense。这就是我们所说的!

    #2 优势很大。它可以防止您执行错误的代码,例如:

    setTimeout(myFunc, 'abc');
    

    这不适用于第二个参数应该是一个数字,而不是字符串。 但正如我所说,您必须将定义文件添加到您的 TypeScript 解决方案中才能正常工作。

    如果您喜欢尝试(不会后悔),请按照以下步骤操作:

    1. 为 Visual Studio 下载并安装 TypeScript - 点击链接 https://www.typescriptlang.org/
    2. 创建一个 TypeScript Projet - 很简单,安装 TypeScript for Visual Studio 后已经有一个模板;
    3. 使用 NuGet 添加 angular、jquery 包
    4. 安装以下定义包 - angularjs.TypeScript.DefinitelyTyped - https://www.nuget.org/packages/angularjs.TypeScript.DefinitelyTyped/

    我相信这是一个比普通 Intellisense 更好的解决方案,因为它还可以防止您向 angular 函数发送错误的参数。由于 JavaScript 允许任何变量为任何类型,因此当 JS 中的任何内容出现问题时,很难进行代码审查。对于 TS,这不应该发生。如果这样做,编译将失败。

    【讨论】:

    • 谢谢你的建议,我试试
    • 谢谢,它有效,我想使用 JS 并且只有在克服 TS 之后,但我想我会比我计划的更早做。我会检查你的答案作为解决方案。
    猜你喜欢
    • 2015-07-02
    • 2018-02-06
    • 1970-01-01
    • 2015-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-26
    相关资源
    最近更新 更多