AngularJS Visual Studio 2015 年的智能感知
AngularJS Intellisense in Visual Studio 2015
最近我开始使用 Visual Studio 2015 Community 而不是 Brackets。正如网站上所说,它对 Angular 有某种支持,但是,除了 HTML 文件,我什至没有在任何地方看到它。
即使是变量 "angular",将鼠标悬停在其上时,也会打印出
angular <type unknown>
我添加了一张图片来解释我的意思。
我试图将 JavaScript TextEditor 引用更改为隐式(Web),但是,在重新启动后,它又恢复为隐式(Windows)。
我使用 Web Essentials,我知道它具有创建 Intellisense JS 和 TS 文件的功能,但是,此功能始终处于禁用状态。我打开项目中的每个目录查看,这个功能一直是关闭的。
此外,我尝试用 _references.js 手动创建 Scripts 目录,但它非常有效......糟糕,我需要将它移动到另一个目录并将它 return 放到上一个目录中才能制作自动同步等选项可用。关于 _references.js
同样的事情
为了让这个案例更简洁:
我手动创建 _references.js。现在它有 Anto-Sync 和 Update References 选项。 —> Reboot Visual Studio 2015 —> _references.js 没有这样的选项了。
但是,即使在重新启动之前,如果我更新它,它也会跳过根文件夹中除 app.js 之外的所有内容。
P.S。 AngularJS IntelliSense 在 HTML 文件中工作,即我可以放置 ng-* 属性。所以...我认为,有些东西在 VS 2015 中不起作用。
P.S.S.我将 NodeJS 用于 WebApp 的服务器部分。
您是否尝试过在需要 Intellisense 的 js 文件的开头使用它?
/// <reference path="pathToAngular.js" />
好吧,我知道你正在寻找一个解决方案来使用 Instellisense 和 Visual Studio,无论如何。
我也在使用 Visual Studio,但我转而使用 TypeScript。它实际上是在写一种扩展的强类型JavaScript。这意味着您可以声明变量的类型。示例: var x:string = 'test';
课程有优点也有缺点。我喜欢它的优点,这就是我使用它的原因。
- 您必须编译您的代码。了解解析您的 Javascript 以进行错误检查和从
*.ts
文件到 *.js
文件的转换过程。
- 你可以添加header个文件。你开发过C/C++应用程序吗?好吧,在 TypeScript 中,您可以添加定义或
*.d
文件,它们实际上只是用于检查 JavaScript 函数定义的头文件。
- Visual Studio 上的 TypeScript 使用 Intellisense。 这就是我们所说的!
#2 的优势很大。它可以防止您执行错误的代码,例如:
setTimeout(myFunc, 'abc');
因为第二个参数应该是数字而不是字符串,所以这不起作用。
但正如我所说,您必须将定义文件添加到您的 TypeScript 解决方案才能正常工作。
如果您喜欢尝试(您不会后悔),请按照以下步骤操作:
- 为 Visual Studio 下载并安装 TypeScript - 按照 link https://www.typescriptlang.org/
- 创建一个 TypeScript Projet - 非常简单,在为 Visual Studio;
安装 TypeScript 后已经有一个模板
- 使用 NuGet 添加 angular、jquery 包
- 安装以下定义包
- angularjs.TypeScript.DefinitelyTyped - https://www.nuget.org/packages/angularjs.TypeScript.DefinitelyTyped/
我相信这是一个比普通 Intellisense 更好的解决方案,因为它还可以防止您向 angular 中的函数发送错误的参数。由于 JavaScript 允许任何变量是任何类型,因此当您的 JS 中的任何内容中断时,很难进行代码审查。使用 TS,这不应该发生。如果这样做,编译将失败。
最近我开始使用 Visual Studio 2015 Community 而不是 Brackets。正如网站上所说,它对 Angular 有某种支持,但是,除了 HTML 文件,我什至没有在任何地方看到它。 即使是变量 "angular",将鼠标悬停在其上时,也会打印出
angular <type unknown>
我添加了一张图片来解释我的意思。
我试图将 JavaScript TextEditor 引用更改为隐式(Web),但是,在重新启动后,它又恢复为隐式(Windows)。
我使用 Web Essentials,我知道它具有创建 Intellisense JS 和 TS 文件的功能,但是,此功能始终处于禁用状态。我打开项目中的每个目录查看,这个功能一直是关闭的。
此外,我尝试用 _references.js 手动创建 Scripts 目录,但它非常有效......糟糕,我需要将它移动到另一个目录并将它 return 放到上一个目录中才能制作自动同步等选项可用。关于 _references.js
同样的事情为了让这个案例更简洁: 我手动创建 _references.js。现在它有 Anto-Sync 和 Update References 选项。 —> Reboot Visual Studio 2015 —> _references.js 没有这样的选项了。 但是,即使在重新启动之前,如果我更新它,它也会跳过根文件夹中除 app.js 之外的所有内容。
P.S。 AngularJS IntelliSense 在 HTML 文件中工作,即我可以放置 ng-* 属性。所以...我认为,有些东西在 VS 2015 中不起作用。 P.S.S.我将 NodeJS 用于 WebApp 的服务器部分。
您是否尝试过在需要 Intellisense 的 js 文件的开头使用它?
/// <reference path="pathToAngular.js" />
好吧,我知道你正在寻找一个解决方案来使用 Instellisense 和 Visual Studio,无论如何。
我也在使用 Visual Studio,但我转而使用 TypeScript。它实际上是在写一种扩展的强类型JavaScript。这意味着您可以声明变量的类型。示例: var x:string = 'test';
课程有优点也有缺点。我喜欢它的优点,这就是我使用它的原因。
- 您必须编译您的代码。了解解析您的 Javascript 以进行错误检查和从
*.ts
文件到*.js
文件的转换过程。 - 你可以添加header个文件。你开发过C/C++应用程序吗?好吧,在 TypeScript 中,您可以添加定义或
*.d
文件,它们实际上只是用于检查 JavaScript 函数定义的头文件。 - Visual Studio 上的 TypeScript 使用 Intellisense。 这就是我们所说的!
#2 的优势很大。它可以防止您执行错误的代码,例如:
setTimeout(myFunc, 'abc');
因为第二个参数应该是数字而不是字符串,所以这不起作用。 但正如我所说,您必须将定义文件添加到您的 TypeScript 解决方案才能正常工作。
如果您喜欢尝试(您不会后悔),请按照以下步骤操作:
- 为 Visual Studio 下载并安装 TypeScript - 按照 link https://www.typescriptlang.org/
- 创建一个 TypeScript Projet - 非常简单,在为 Visual Studio; 安装 TypeScript 后已经有一个模板
- 使用 NuGet 添加 angular、jquery 包
- 安装以下定义包 - angularjs.TypeScript.DefinitelyTyped - https://www.nuget.org/packages/angularjs.TypeScript.DefinitelyTyped/
我相信这是一个比普通 Intellisense 更好的解决方案,因为它还可以防止您向 angular 中的函数发送错误的参数。由于 JavaScript 允许任何变量是任何类型,因此当您的 JS 中的任何内容中断时,很难进行代码审查。使用 TS,这不应该发生。如果这样做,编译将失败。