AngularJS intellisense無法在Visual Studio 2015上運行




visual-studio-2015 (8)

根據這篇 post 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的有角度的公用文件夾上,或者在從bower下載的所有文件都放在我的dev有角的文件夾上。

我還嘗試了將addind直接添加到Implicit(Web)參考組的工具/選項/文本編輯器/ javascriptr / intellisense /參考菜單中,但仍然無法正常工作。

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

  • wwwroot
    • 應用程式(我的角度網站資料)
      • 控制器
      • 服務
      • 意見
    • lib(js依賴項,每個庫只有.min.js文件)
      • 角度的
      • 角度路線
      • ....
    • _references.js(Visual Studio js引用文件,包含對app和lib文件夾中文件的引用)
  • 庫(包含Bower下載的完整庫)
    • 角度的
    • 角度路線
    • ...

附帶說明,我沒有/ scripts文件夾,因此沒有 /scripts/_references.js 文件


以上都不適合我。 我的是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" />

完成上述所有操作後,您應該可以看到角度的智能感知。

您可以對其他人的智能感知(例如jQuery,Anytime,_underscore等)執行相同的操作……只需繼續將路徑語句添加到_reference.js文件中,並且也可以將_reference.js文件複製到其他網站(如果它們具有相同的內容)目錄結構。 祝好運!


AngularJS的Visual Studio intellisense非常感性(一種很好的說法,它很可能開發得很差)。

因此,即使使用_references.js文件對所有內容進行了很好的配置,並且您對jQUERY之類的其他庫都具有了​​智能感知能力,但您很可能不會為AngularJS獲得它。

例如,在VS 2015社區中,以下指令將不會顯示$ http角度對象的智能感知,儘管所有代碼都可以正常運行:

在下圖中,我向模塊添加了一個空數組(這意味著將創建該模塊,如果存在另一個具有相同名稱的模塊,它將被覆蓋),然後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指令,如果這樣做,該指令將類似於一個我剛剛向您展示了模塊聲明上沒有空數組的情況,因此,智能將無法對其進行處理。 它不適用於Microsoft給用戶的示例...僅適用於模塊創建,您的第一個文件,從現在開始不起作用。


在Web項目的Visual Studio 2015 RTM中,這不適用於我,但我解決了該問題。

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

我從VS UI中刪除了所有其他智能感知資源,以確保我所做的是對它的修復。

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

  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文件。 如果您不這樣做,它們可能太大,會破壞智能感知。 首次使用智能感知時,請準備大約5-10秒的延遲,因為它必須從項目中加載所有這些引用。
  6. 如果它干擾了本機的智能感知,則可能需要在Resharper中禁用javascript的智能感知。
  7. 重新啟動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。


我遇到過同樣的問題。 當我添加angular時,VS 2015(RTM)修改了_references.js; 基本上,它刪除了文件中的某些行。 當我在我的_references.js中添加有關angula的引用時,如下所示

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

我在VS 2015中獲得了對Angular 1.4.3的智能感知!


遵循本文以向VS添加更全面的智能感知。

post

下載 angular.intellisense.js 文件並將其放置在Program Files(x86)\ Microsoft Visual Studio 12.0 \ JavaScript \ References文件夾中


除了角對象和世界複雜度高的senario($ http和所有自定義對像都不起作用)之外,我還有RTM ..的問題。.遵循_references設置。 我唯一的懷疑是我從RC升級到RT​​M(沒有全新安裝)在Git上創建了一個問題[link] github.com/jmbledsoe/angularjs-visualstudio-intellisense/issues / ...嘗試在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





visual-studio-2015