簡體   English   中英

AngularJS intellisense無法在Visual Studio 2015上運行

[英]AngularJS intellisense not working on Visual Studio 2015

根據這篇文章, intellisense也應該在新的VS 2015上工作,但到目前為止我只獲得了角度對象的intellisense而不是依賴項或我的自定義模塊。

圖片

這是我做的:

  1. 將angular.intellisense.js添加到C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\JavaScript\\References的全局javascript引用
  2. 重新啟動VS2015然后什么都沒有,只要我試圖在$ http對象上使用intellisense時它就會顯示驚嘆號。

我還將文件添加到與angular.js相同的位置,但它仍然無效。 我在這種情況下的問題是,我應該在哪里放置文件? 在只有我的angular.js的角度公用文件夾上,或在我的dev角文件夾中,從涼亭下載的所有文件都在。

我還嘗試將它直接添加到Implicit(Web)引用組的tools / options / text editor / javascriptr / intellisense / reference菜單中,但它仍然無效。

在我的項目中,我在src文件夾中有以下文件夾結構:

  • wwwroot文件
    • app(我的角度網站的東西)
      • 控制器
      • 服務
      • 意見
    • lib(js依賴項,只有每個庫的.min.js文件)
      • 角路徑
      • ....
    • _references.js(visual studio js引用文件,包含對app和lib文件夾內文件的引用)
  • 庫(包含涼亭下載的完整庫)
    • 角路徑
    • ...

作為旁注,我沒有/ scripts文件夾,因此沒有/scripts/_references.js文件

這在Web項目中的Visual Studio 2015 RTM中不起作用,但我解決了這個問題。

此項目不是使用Visual Studio創建的,並且在任何地方都沒有_references.js文件。 所以我認為這適用於任何情況。

我從VS UI中刪除了所有其他intellisense資源,以確保我所做的是修復它的內容。

  1. 轉到https://www.angularjs.org並提取下載對話框。

下載AngularJS對話框

  1. 復制未壓縮的CDN網址。 今天碰巧是https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular.js
  2. 在Visual Studio 2015 RTM中,轉到“ Tools, Options, Text Editor, Javascript, Intellisense, References 選擇適當的參考組; 對於大多數Web項目,這是Implicit (Web) 將網址粘貼在底部文本框中,然后點擊添加按鈕。 不要忽略該對話框。 在此輸入圖像描述
  3. Text Editor, Javascript, Intellisense, General ,確保選中“ Download remote references ”復選框。
  4. 單擊“ 確定”按鈕。
  5. (可選)如果要為您創建的角度提供程序(不是角度框架的一部分)進行智能感知,請將_references.js添加到項目的根目錄中。 不要打擾制作Scripts文件夾。 右鍵單擊它並選擇自動同步,然后選擇更新。 進入它並刪除構建過程創建的任何js文件。 如果你不這樣做,它們可能會如此之大,以至於它們會破壞智能感知。 第一次使用intellisense時要做好約5-10秒的延遲准備,因為必須從項目中加載所有這些引用。
  6. 如果javascript干擾本機智能感知,您可能需要在Resharper中禁用intellisense。
  7. 重新啟動Visual Studio 直到你這樣做才行不通。 另外,我首先關閉除此實例之外的所有其他實例,因此這些設置“堅持”。 所以我建議你在重啟這個實例之前這樣做。

正如@Balthasar指出的那樣(如果你使用的是Resharper),你需要從Visual Studio啟用intellisense才能工作:

Resharper - >選項 - >環境 - > intellisense - >一般,選擇'Custom Intellisense',對於Javascript,您可以選擇Visual 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" />

我有一個類似的問題,結果Resharper阻止了我在_references.js文件中設置的所有漂亮的JavaScript intellisense。

AngularJS的Visual Studio 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結束:( -

我的_reference文件與angular添加坐在wwwroot

$ http和任何其他自定義對象缺少智能感知的錯誤

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 - 專業版

然而我在這里使用我的解決方案 - >

  1. 您必須通過一個封閉的/// <reference path="yourpath"/>引用源代碼,即使源代碼位於您編碼的同一文件夾中。
  2. 不要使用縮小的來源。 您的所有來源都必須是非縮小的
  3. 如果將路徑stmts存儲在_reference.js文件中,請確保該文件與代碼文件所在的目錄相同。

雖然我可以將引用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" />

_reference.js與.js文件位於同一目錄

完成上述所有操作后,您應該能夠看到角度智能感知。

您可以為其他人的智能感知做同樣的事情,比如jQuery,Anytime,_underscore等...只需將路徑語句添加到_reference.js文件中,您也可以將該_reference.js文件復制到其他網站(如果它們具有相同的內容) dir struct。 祝好運!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM