[英]AngularJS intellisense not working on Visual Studio 2015
根據這篇文章, intellisense也應該在新的VS 2015上工作,但到目前為止我只獲得了角度對象的intellisense而不是依賴項或我的自定義模塊。
這是我做的:
C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\JavaScript\\References
的全局javascript引用 我還將文件添加到與angular.js相同的位置,但它仍然無效。 我在這種情況下的問題是,我應該在哪里放置文件? 在只有我的angular.js的角度公用文件夾上,或在我的dev角文件夾中,從涼亭下載的所有文件都在。
我還嘗試將它直接添加到Implicit(Web)引用組的tools / options / text editor / javascriptr / intellisense / reference菜單中,但它仍然無效。
在我的項目中,我在src文件夾中有以下文件夾結構:
作為旁注,我沒有/ scripts文件夾,因此沒有/scripts/_references.js
文件
。
這在Web項目中的Visual Studio 2015 RTM中不起作用,但我解決了這個問題。
此項目不是使用Visual Studio創建的,並且在任何地方都沒有_references.js
文件。 所以我認為這適用於任何情況。
我從VS UI中刪除了所有其他intellisense資源,以確保我所做的是修復它的內容。
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秒的延遲准備,因為必須從項目中加載所有這些引用。 我剛剛意識到_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" />
我有一個類似的問題,結果Resharper阻止了我在_references.js文件中設置的所有漂亮的JavaScript intellisense。
因此,即使所有內容都使用_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向用戶提供的示例...僅適用於模塊創建,您的第一個文件,從現在開始不起作用。
我遇到過同樣的問題。 當我添加角度時,VS 2015(RTM)修改了我的_references.js; 基本上它刪除了我文件中的一些行。 當我在_references.js中添加angula的引用時,如下所示
/// <reference path="lib/angular/angular.js" />
我在VS 2015中獲得了Angular 1.4.3的智能感知功能!
按照這篇文章為VS添加更全面的intellisense。
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等)。
我的問題是我使用CDN / http://地址引用Angularjs,因此Visual studio沒有任何有關角度的信息。
嘗試直接下載angularjs js文件,並在index.html中包含你的項目和引用,重建(以防萬一)並再試一次,希望它應該有效。
希望我幫忙。
我有來自角度對象的RTM ..apart和hello world復雜性senario($ http和所有自定義對象都不起作用)的問題。遵循_references設置。 我唯一的懷疑是我從RC升級到RTM(沒有全新安裝)在Git上創建了一個問題[link] github.com/jmbledsoe/angularjs-visualstudio-intellisense/issues / ... ..抓住VHD Win 10圖像然后去嘗試一旦d / l結束:( -
UPDATE
好的,這里有一點幫助就是答案...... 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
只需在項目根目錄下名為“Scripts”(命名約定)的文件夾中創建一個_references.js文件即可。 使用必要的javascript文件更新它,你應該能夠獲得intellisense。 以下是為什么需要這樣的事情的鏈接: http : //madskristensen.net/post/the-story-behind-_referencesjs
以上都不適合我。 我的是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文件復制到其他網站(如果它們具有相同的內容) dir struct。 祝好運!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.