web-dev-qa-db-fra.com

AngularJS intellisense ne fonctionne pas sur Visual Studio 2015

Selon post , intellisense devrait également travailler sur le nouveau VS 2015, mais je n’obtiens jusqu’à présent que intellisense pour l’objet angulaire et non pour les dépendances ou mes modules personnalisés.

image

Voici ce que j'ai fait:

  1. Ajout de angular.intellisense.js aux références globales en javascript à C:\Program Files (x86)\Microsoft Visual Studio 14.0\JavaScript\References 
  2. Redémarré VS2015 Et puis rien, il a simplement montré des points d'exclamation chaque fois que j'ai essayé d'utiliser intellisense sur un objet $ http.

J'ai également ajouté le fichier au même endroit que mon angular.js mais cela ne fonctionnait toujours pas. La question que je me pose dans ce cas est: où devrais-je placer le fichier? sur le dossier public angulaire avec uniquement mon fichier angular.js, ou sur mon dossier dev angular où se trouvent tous les fichiers téléchargés à partir de bower.

J'ai également essayé de l'ajouter directement dans le menu outils/options/éditeur de texte/javascriptr/intellisense/reference, dans le groupe de référence implicite (Web), mais cela ne fonctionnait toujours pas.

Sur mon projet, j'ai la structure de dossiers suivante dans le dossier src:

  • wwwroot
    • app (mon truc angulaire de site)
      • contrôleurs
      • prestations de service
      • vues
    • lib (dépendances js, seul le fichier .min.js de chaque bibliothèque)
      • angulaire
      • voie angulaire
      • ....
    • _references.js (le fichier de références js de visual studio, contient des références aux fichiers des dossiers de l'application et de la bibliothèque lib)
  • Bibliothèques (contient les bibliothèques complètes téléchargées par bower)
    • angulaire
    • voie angulaire
    • ...

En remarque, je n'ai pas de dossier/scripts et donc pas de fichier /scripts/_references.js

.

40
edua_glz

Cliquez ici pour afficher Visual Studio 2015 RTM dans le navigateur de votre projet, il y a un problème.

Tento projekt nebyl vytvořen v aplikaci Visual Studio a nikde nemá soubor _references.js. Takže si myslím, je vous en prie, fongovat v každé situaci.

Afficher tout ce qui a été écrit sur l'interface utilisateur, cliquez ici pour afficher le texte.

  1. Přejděte na https://www.angularjs.org a vytáhněte dialogové okno stahování.

Download AngularJS Dialog Box

  1. Zkopírujte URL nekomprimovaného CDN. Dnes se to stane https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular.js
  2. Cliquez ici pour afficher Visual Studio 2015 RTM přejděte na Tools, Options, Text Editor, Javascript, Intellisense, References. Vyberte příslušnou referenční skupinu; u většiny webových projektů je to Implicit (Web). Adresse URL de la page de texte sur le mot cléAddtlačítko. Dialogové okno zatím nezrušte. enter image description here
  3. V části Text Editor, Javascript, Intellisense, General se ujistěte, že je zaškrtnuto políčko Download remote references.
  4. Klikněte na ikonuOKtlačítko.
  5. (volitelné) Pokud chcete, aby poskytovatelé hranatých položek, kteří vytváříte, nebyli inteligentní, přidejte do kořenového adresáře _references.js. Neobtěžujte se vytvářet složku Scripts. Résultats de recherche des vendeurs et des sociétés pour le traitement automatique de la synchronisation et la synchronisation de la vente. Jděte do toho a odeberte všechny soubory js vytvořené procesem sestavení. Pokud tak neučiníte, mohou být tak velké, rozbijí inteligenci. Informations détaillées sur l'intelligentního systému bute připraveni na přibližně 5-10 sur la protection de la vie, la protection contre la copie, la référence à la lecture du z zošeho projektu.
  6. Cliquez sur ce lien pour afficher les réponses java javascript, cliquez ici pour télécharger la version en anglais, cliquez ici.
  7. Restartujte Visual Studio . Nebude fungovat, dokud to neuděláte. Vous êtes le premier à obtenir un exemple, à savoir l'instance, le résultat de la recherche. Doporučuji vám à provenir de l’instance de redémarrage.
33
toddmo

Comme @Balthasar l'a fait remarquer (et au cas où vous utilisez Resharper), vous devrez activer intellisense à partir de Visual Studio pour que cela fonctionne:

Resharper -> options -> environment -> intellisense -> general, sélectionnez 'Custom Intellisense' et pour Javascript vous pouvez sélectionner Visual studio. Sinon, vous pouvez utiliser l'achèvement de l'instruction 'Visual Studio' (deuxième option)

 enter image description here

21
HaRoLD

je viens de me rendre compte que l'ordre automatique utilisé par le fichier _reference.js (d'abord mes fichiers, puis ceux du framework) empêchait intellinsense de fonctionner sur d'autres fichiers que le fichier app.js

voici à quoi ressemble maintenant mon _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" />
8
Fernando Asulay

J'ai eu un problème similaire et il s'est avéré que Resharper bloquait tout le code JavaScript Nice intellisense configuré dans mon fichier _references.js. 

5
Balthasar

Visual Studio intellisense pour AngularJS est extrêmement sentimental (façon agréable de dire qu’il est probablement peu développé).

Ainsi, même si tout est bien configuré avec le fichier _references.js et que vous obtenez intellisense pour d’autres bibliothèques telles que jQUERY, vous ne l’obtiendrez probablement pas pour AngularJS.

Par exemple, dans la communauté VS 2015, la directive ci-dessous ne montre pas intellisense pour l'objet angulaire $ http, bien que tout fonctionne correctement avec le code:

 enter image description here

Dans l'image ci-dessous, j'ajoute un tableau vide au module (ce qui signifie que le module sera créé et s'il existe un autre du même nom, il est écrasé), et intellisense commence à fonctionner:

 enter image description here

Voici un extrait du code que vous pouvez tester (essayez d'ajouter le tableau vide ici):

(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: Si vous cliquez sur n’importe quel dossier de votre projet dans l’explorateur de solutions et que vous appuyez sur Ctrl + Alt + A pour ajouter un nouvel élément, il est suggéré d’ajouter une directive AngularJs. Je viens de vous montrer, sans le tableau vide dans la déclaration de module, donc Intellisence ne fonctionnera pas avec cela. Cela ne fonctionnera pas avec l'exemple donné par Microsoft aux utilisateurs ... Ne fonctionne que sur la création de module, votre premier fichier et ne fonctionne plus à partir de maintenant.

 enter image description here

3
Lombas

J'ai eu le même problème. Lorsque j'ai ajouté angular, VS 2015 (RTM) a modifié mon _references.js; fondamentalement, il a supprimé certaines de mes lignes dans le fichier. Quand j'ai ajouté une référence pour angula dans mon _references.js comme ci-dessous

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

J'ai eu mon intellisense pour Angular 1.4.3 dans VS 2015!

1
Deep

J'ai ce problème pour RTM .. .partir d'un objet angulaire et dans un complexe hello senario de complexité du monde ($ http et tous les objets personnalisés ne fonctionnent pas) .. J'ai suivi les paramètres de configuration _références. Mon seul soupçon est que je suis passé de RC à RTM (aucune nouvelle installation) n'a créé un problème sur Git [lien] github.com/jmbledsoe/angularjs-visualstudio-intellisense/issues/… ..C saisissant un disque dur virtuel Win 10 image et va essayer que lorsque le d/l se termine :( - 

 my _reference file with angular added sitting in wwwroot

 error with missing intellisense for $http and any other of my custom objects

METTRE &AGRAVE; JOUR 

Ok, avec un peu d’aide, voici la réponse .... Le moteur Intellisense ne voit jamais le module nommé "sportsStore" créé, car il est créé dans le fichier app.html dans un bloc de script:

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

Le moteur VS Intellisense "exécute" le code de votre projet afin de découvrir comment le compléter. Il utilise le fichier _references.js comme point de départ et exécute chaque référence à partir de ce fichier, dans l'ordre. Comme VS Intellisense n’exécute jamais une ligne de code créant le module AngularJS nommé "sportsStore", il ne sait pas comment procéder.

Déplacez le code JavaScript ci-dessus dans son propre fichier JS (appelons-le "app.js") et incluez-y une référence dans _references.js. Assurez-vous que la référence "app.js" se trouve immédiatement après la référence "angular.js", car vous en aurez besoin pour créer le module avant que les autres fichiers de script ne le configurent. :RÉ

0
HoopSnake

j'ai eu ce problème. 

Le studio visuel IDE analysera tous les fichiers js référencés dans les fichiers HTML et les utilisera si nécessaire (pour l'intellisense, etc.).

Mon problème était que je faisais référence à Angularjs en utilisant les adresses CDN/http: // et que Visual studio ne disposait donc d'aucune information sur angular.

Essayez de télécharger le fichier angularjs js directement et de l'inclure dans votre projet et dans votre référence dans votre index.html, de le reconstruire (juste au cas où), puis d'essayer à nouveau et, espérons-le, que cela fonctionne.

J'espère que j'ai aidé.

0
Imran

Suivez cet article pour ajouter intellisense plus complet à VS.

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

Téléchargez le fichier angular.intellisense.js et placez-le dans le dossier Program Files (x86)\Microsoft Visual Studio 12.0\JavaScript\References. 

0
WarrenDodsworth

Créez simplement un fichier _references.js dans un dossier nommé 'Scripts' (convention de nommage) à la racine de votre projet. Mettez-le à jour avec vos fichiers javascript nécessaires et vous devriez pouvoir obtenir intellisense. Voici un lien sur pourquoi une telle chose était nécessaire: http://madskristensen.net/post/the-story-behind-_referencesjs

0
Newbie

Aucune de ces réponses ne fonctionne pour moi. Le mien est Visual Studio 2017 - Professionnel

Pourtant, je l’ai fait en utilisant ma solution ici ->

  1. Vous devez référencer la source par un /// <reference path="yourpath"/> inclus même si la source est dans le même dossier que votre code.
  2. NE PAS UTILISER source précisée. Toutes vos sources doivent être non minifiées
  3. Si vous stockez votre chemin stmts dans le fichier _reference.js, assurez-vous que ce fichier se trouve dans le même répertoire que votre fichier de code.

Bien que je puisse mettre la référence stmt dans mon fichier de code, j'ai choisi d'utiliser un fichier séparé "_reference.js" pour le stocker. 

Vous pouvez mettre ceci avec votre code:

/// <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) {

Ou vous pouvez entrer cette ligne dans votre fichier _reference.js

/// <reference path="../_assets/JS-Main/angular-1.3.13.js" />

  _reference.js at the same dir as your .js files

Après avoir fait tout ce qui précède, vous devriez être capable de voir l'intellisense angulaire. 

Vous pouvez faire la même chose pour l'intellisense des autres, comme jQuery, Anytime, _underscore, etc. dir struct. Bonne chance!

0
Jenna Leaf