AngularJS intellisense不适用于Visual Studio 2015

根据这篇文章, intellisense也应该在新的VS 2015上工作,但到目前为止,我只能得到angular度对象的智能感知,而不是依赖或我的自定义模块。

图片

以下是我所做的:

  1. 将angular.intellisense.js添加到C:\Program Files (x86)\Microsoft Visual Studio 14.0\JavaScript\References的全局JavaScript引用
  2. 重新启动VS2015然后什么也没有,只是当我试图在$ http对象上使用intellisense时,它只是显示感叹号。

我也将文件添加到我的angular.js相同的地方,但它仍然无法正常工作。 我在这种情况下的问题是,我应该在哪里放置文件? 在只有我的angular.jsangular度的公共文件夹,或在我的开发angular度文件夹所有从鲍尔下载的文件。

我也尝试过将它直接添加到Implicit(Web)引用组的工具/选项/文本编辑器/ javascriptr / intellisense / reference菜单中,但它仍然不起作用。

在我的项目中,我在src文件夹中有以下文件夹结构:

  • wwwroot文件
    • 应用程序(我angular网站的东西)
      • 控制器
      • 服务
      • 意见
    • lib(js依赖关系,只有每个库的.min.js文件)
      • angular
      • angularpath
      • ….
    • _references.js(visual studio js引用文件,包含对应用程序和lib文件夹内的文件的引用)
  • 图书馆(包含由凉亭下载的完整图书馆)
    • angular
    • angularpath

作为一个方面说明,我没有一个/脚本文件夹,因此没有/scripts/_references.js文件

这在Visual Studio 2015 RTM中并不适用于Web项目,但是我解决了这个问题。

该项目不是用Visual Studio创build的,也没有任何地方有一个_references.js文件。 所以我认为这会在任何情况下都有效。

我从VS用户界面中删除了所有其他intellisense资源,以确保我所做的是修复它。

  1. 转到https://www.angularjs.org并拉起下载对话框。;

下载AngularJS对话框

  1. 复制未压缩的CDNurl。 今天恰好是https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular.js
  2. 在Visual Studio 2015 RTM中,转到Tools, Options, Text Editor, Javascript, Intellisense, References 。 select适当的参考组; 对于大多数Web项目这是Implicit (Web) 。 将url粘贴到底部文本框,然后点击添加button。 不要closures对话框。 在这里输入图像说明
  3. 在“ Text Editor, Javascript, Intellisense, General ,确保选中“ Download remote references ”checkbox。
  4. 点击确定button。
  5. (可选)如果您希望为您创build的angular提供程序(不是angular框架的一部分)提供智能感知,请将_references.js添加到项目的根目录。 不要打扰做一个Scripts文件夹。 右键点击它并select自动同步,然后select更新。 进入它并删除由生成过程创build的任何js文件。 如果你不这样做,他们可以如此之大,他们将打破智力感知。 第一次使用智能感知时,要做好5-10秒的准备,因为它必须从您的项目中加载所有这些参考。
  6. 如果干扰本机智能感知,则可能需要在Resharper中禁用智能感知。
  7. 重新启动Visual Studio 。 直到你这样做,它才会起作用。 另外,我关于closures除此之外的所有其他实例的偏执狂,所以这些设置“坚持”。 所以我build议你在重启这个实例之前做这个。

正如@Balthasar指出的(如果您使用的是Resharper),您将需要从Visual Studio中启用intellisense才能正常工作:

resharper – > options – > environment – > intellisense – > general,select'Custom Intellisense',对于Javascript你可以selectVisual studio。 或者,您可以使用“Visual Studio”语句完成(第二个选项)

在这里输入图像说明

我刚刚意识到_reference.js文件使用的自动顺序(首先是我的文件,然后是框架的文件)阻止intellinsense在其他不是app.js文件的文件上工作

这是现在我的_references.js看起来像:

 /// <autosync enabled="false" /> /// <reference path="angular.js" /> /// <reference path="angular-resource.js" /> /// <reference path="angular-ui-router.min.js" /> /// <reference path="jquery-2.1.4.js" /> /// <reference path="materialize/materialize.js" /> /// <reference path="../App/App.js" /> /// <reference path="../App/Controllers/productsController.js" /> /// <reference path="../App/Controllers/productsEditController.js" /> /// <reference path="../App/Controllers/valuesController.js" /> /// <reference path="../common/common.services.js" /> /// <reference path="../common/productsResource.js" /> /// <reference path="../common/valuesResource.js" /> 

我有一个类似的问题,事实certificate,Resharper阻止了我在_references.js文件中设置的所有好的JavaScript intellisense。

Visual Studio intellisense for AngularJS是非常感性的(一种很好的方式说,它很可能发展不佳)。

所以,即使所有东西都configuration好了_references.js文件,并且为其他类库(如jQUERY)获得了intellisense,那么对于AngularJS,您可能也不会得到它。

例如,在VS 2015社区中,下面的指令不会显示$ httpangular度对象的intellisense,尽pipe一切正常的代码:

在这里输入图像说明

在下面的图片中,我向模块添加了一个空的数组(这意味着模块将被创build,如果另一个具有相同的名称,它将被覆盖),智能感知开始工作:

在这里输入图像说明

这里是你testing自己的代码片段(尝试在这里添加空数组):

 (function () { 'use strict'; angular .module('intellisence.sucks.directives') .directive('footer', footer); footer.$inject = ['$http']; function footer($http) { $http. var directive = { link: link, restrict: 'EA' }; return directive; function link(scope, element, attrs) { } } })(); 

我遇到过同样的问题。 当我添加angular度,VS 2015(RTM)修改我的_references.js; 基本上它删除了文件中的一些行。 当我在下面的_references.js中添加一个angula的参考

/// <reference path="lib/angular/angular.js" />

我在VS 2015中获得了我的Intellisense for Angular 1.4.3!

按照这篇文章来添加更全面的智能感知VS.

http://blogs.msdn.com/b/visualstudio/archive/2015/02/05/using-angularjs-in-visual-studio-2013.aspx

下载angular.intellisense.js文件并将其放在Program Files(x86)\ Microsoft Visual Studio 12.0 \ JavaScript \ References文件夹中

我有这个问题。

Visual Studio IDE将扫描HTML文件中引用的任何js文件,并在必要时使用它们(例如intellisense等)。

我的问题是我引用Angularjs使用CDN / http://地址,因此Visual Studio没有任何关于angular度的信息。

尝试直接下载angularjs js文件,并将其包含在您的项目和参考index.html,重build(以防万一),再次尝试,希望它应该工作。

希望我帮助。

我有这个RTM的问题..从angular对象和hello世界复杂度senario($ http和所有自定义对象不工作)的apapart ..遵循_reference设置。 我唯一的疑问是我从RC升级到RTM(没有全新安装)在Git上创build了一个问题[link] github.com/jmbledsoe/angularjs-visualstudio-intellisense/issues/… ..抓住VHD Win 10的形象,并去尝试一旦d / l完成:( –

我的_reference文件添加了坐在wwwroot角

错误与$ http和任何其他我的自定义对象缺少智能感知

UPDATE

好的,这里有一些帮助是答案…. Intellisense引擎永远不会看到名为“sportsStore”的模块被创build,因为它是在脚本块的app.html文件中创build的:

 <script> angular.module("sportsStore", ["customFilters","cart"]); </script> 

VS Intellisense引擎正在“执行”您项目中的代码,以便发现如何完成代码。 它使用_references.js文件作为起点,并按顺序执行该文件中的每个引用。 由于VS Intellisense从不执行创build名为“sportsStore”的AngularJS模块的代码行,因此它不知道如何完成代码。

将上面的JavaScript代码移动到它自己的JS文件(我们称之为“app.js”),并在_references.js中包含对它的引用。 确保“app.js”引用紧跟在“angular.js”引用之后,因为您需要在其他脚本文件configuration之前创build该模块。 :d

只需在项目的根目录下的一个名为“脚本”(命名约定)的文件夹中创build一个_references.js文件。 用必要的JavaScript文件更新它,你应该能够获得智能感知。 这里有一个关于为什么需要这样的事情的链接: http : //madskristensen.net/post/the-story-behind-_referencesjs