根据这个post intellisense也应该在新的VS 2015上工作,但到目前为止我只获得了角度对象的智能感知,而不是依赖关系或我的自定义模块。
这就是我的所作所为:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\JavaScript\References
我还将文件添加到与angular.js相同的位置,但它仍然无法正常工作。我在这种情况下的问题是,我应该在哪里放置文件?在只有我的angular.js的角度公用文件夹上,或在我的开发角文件夹中,从凉亭下载的所有文件都是。
我还尝试将它直接添加到Implicit(Web)引用组的tools / options / text editor / javascriptr / intellisense / reference菜单中,但它仍然没有用。
在我的项目中,我在src文件夹中有以下文件夹结构:
作为旁注,我没有/ scripts文件夹,因此没有/scripts/_references.js
文件
答案 0 :(得分:33)
这在Web项目中的Visual Studio 2015 RTM中不起作用,但我解决了这个问题。
此项目不是使用Visual Studio创建的,并且在任何地方都没有_references.js
文件。所以我认为这适用于任何情况。
我从VS UI中删除了所有其他智能感知资源,以确保我所做的是修复它的内容。
Tools, Options, Text Editor, Javascript, Intellisense, References
。选择适当的参考组;对于大多数Web项目,这是Implicit (Web)
。将网址粘贴在底部文本框中,然后点击添加按钮。不要忽略对话框。
Text Editor, Javascript, Intellisense, General
下,确保选中Download remote references
。_references.js
添加到项目的根目录中。不要打扰Scripts
文件夹。右键单击它并选择自动同步,然后选择更新。进入它并删除构建过程创建的任何js文件。如果你不这样做,它们可能会如此之大,以至于它们会破坏智能感知。第一次使用intellisense时要做好约5-10秒的延迟,因为它必须从你的项目中加载所有这些引用。答案 1 :(得分:21)
正如@Balthasar指出的那样(如果你使用的是Resharper),你需要从Visual Studio启用intellisense才能工作:
Resharper - >选项 - >环境 - > intellisense - >一般情况下,选择自定义智能感知'对于Javascript,您可以选择Visual Studio。或者,您可以使用' Visual Studio'声明完成(第二个选项)
答案 2 :(得分:8)
我刚刚意识到_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" />
答案 3 :(得分:5)
我遇到了类似的问题,结果发现Resharper阻止了我在_references.js文件中设置的所有优秀的JavaScript intellisense。
答案 4 :(得分:3)
因此,即使所有内容都使用_references.js文件配置良好,并且您获得了其他库(如jQUERY)的智能感知,您也很可能无法获得AngularJS。
例如,在VS 2015社区中,以下指令不会显示$ http angular对象的intellisense,尽管代码处理正常:
在下图中,我向模块添加了一个空数组(这意味着模块将被创建,如果存在另一个模块,则会被覆盖),并且intellisense开始工作:
以下是您自己测试的代码片段(尝试在此处添加空数组):
(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) {
}
}
})();
PS:如果您在解决方案资源管理器中单击项目上的任何文件夹并按Ctrl
+ Alt
+ A
添加新项目,则会建议添加AngularJs指令,如果你这样做,指令将像我刚刚给你看的那样,在模块声明中没有空数组,所以intellisence将无法使用它。它不适用于Microsoft向用户提供的示例...仅适用于模块创建,您的第一个文件,从现在开始不起作用。
答案 5 :(得分:1)
我有同样的问题。当我添加角度时,VS 2015(RTM)修改了我的_references.js;基本上它删除了我文件中的一些行。当我在_references.js中添加angula的引用时如下
/// <reference path="lib/angular/angular.js" />
我在VS 2015中获得了Angular 1.4.3的智能感受!
答案 6 :(得分:0)
按照这篇文章向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文件夹
答案 7 :(得分:0)
Visual Studio IDE将扫描HTML文件中引用的任何js文件,并在必要时使用它们(对于intellisense等)。
我的问题是我使用CDN / http://地址引用Angularjs,因此Visual studio没有任何有关角度的信息。
尝试直接下载angularjs js文件并将其包含在index.html的项目和引用中,重建(以防万一)并再试一次,希望它能够正常工作。
希望我帮助过。
答案 8 :(得分:0)
我有来自角度对象的RTM ..apart和hello world复杂性senario($ http和所有自定义对象都不起作用)的问题。遵循_references设置。我唯一的怀疑是我从RC升级到RTM(没有全新安装)在Git上创建了一个问题[link] github.com/jmbledsoe/angularjs-visualstudio-intellisense/issues / ... ..抓住VHD Win 10图像然后去尝试一旦d / l结束:( -
更新
好的,这里有一点帮助就是答案...... Intellisense引擎永远不会看到名为“sportsStore”的模块被创建,因为它是在脚本块的app.html文件中创建的:
<script>
angular.module("sportsStore", ["customFilters","cart"]);
</script>
VS Intellisense引擎正在“执行”项目中的代码,以便发现如何完成代码。它使用_references.js文件作为起点,并按顺序执行该文件中的每个引用。由于VS Intellisense从不执行一行代码来创建名为“sportsStore”的AngularJS模块,因此它不知道如何完成代码。
将上面的JavaScript代码移动到自己的JS文件中(让我们称之为“app.js”)并在_references.js中包含对它的引用。确保“app.js”引用紧跟在“angular.js”引用之后,因为在其他脚本文件配置之前需要它来创建模块。 :d
答案 9 :(得分:0)
只需在项目根目录中名为“Scripts”(命名约定)的文件夹中创建一个_references.js文件即可。使用必要的javascript文件更新它,你应该能够获得intellisense。以下是关于为什么需要这样的事情的链接:http://madskristensen.net/post/the-story-behind-_referencesjs
答案 10 :(得分:0)
以上都不适合我。我的是Visual Studio 2017-专业版
但是我在这里使用我的解决方案使它起作用->
/// <reference path="yourpath"/>
来引用源。尽管我可以将引用stmt放在我的代码文件中,但是我选择使用单独的文件“ _reference.js ”来存储它。
您可以将其与您的代码一起放置:
/// <reference path="../_assets/JS-Main/angular-1.3.13.js" />
var app = angular.module('app', ['ui.grid', 'ui.bootstrap']);
app.controller('MainCtrl', ['$scope', '$http', function ($scope, $http) {
或者您可以在_reference.js文件中输入此行
/// <reference path="../_assets/JS-Main/angular-1.3.13.js" />
完成上述所有操作后,您应该可以看到角度的智能感知。
您可以为其他人的智能感知(例如jQuery,Anytime,_underscore等)做同样的事情……只要继续将路径语句添加到_reference.js文件中,如果其他人也可以将_reference.js文件复制到其他网站具有相同的目录结构。祝你好运!