web-dev-qa-db-fra.com

AngularJs ReferenceError: angular n'est pas défini

J'essaie d'ajouter un filtre personnalisé, mais si j'utilise le code suivant:

angular.module('myApp',[]).filter('startFrom', function() {
    return function(input, start) {
        start = +start; //parse to int
        return input.slice(start);
    }
});

Mais si je le fais, j'obtiens: "ReferenceError: angular is not defin" dans firebug.

Le reste de l'application fonctionne bien, j'utilise ng-app dans un tag div et non dans un tag html, et https://ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular.js

16
FAvIo41

Bien dans la manière dont il s’agit d’une application à page unique, la solution utilisée était:

charger le contenu avec AJAX, comme n'importe quel autre contrôleur, puis appeler:

angular.bootstrap($('#your_div_loaded_in_ajax'),["myApp","other_module"]);
5
FAvIo41

Vous devriez d'abord mettre la ligne angulaire include avant d'inclure tout autre fichier js

46
Vũ Ngô

J'ai rencontré un problème similaire en raison du référencement local vs distant

<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.js"></script>
<script src="lib/js/ui-grid/3.0.7/ui-grid.js"></script>

Comme ui-grid.js dépend de angular.js, ui-grid nécessite angular.js au moment où il est chargé. Mais dans le cas ci-dessus, ui-grid.js [fichier de référence enregistré localement] est chargé avant angularjs a été chargé [depuis Internet], 

Le problème était résolu si j'avais à la fois angular.js et ui-grid référencé localement et en déclarant angular.js avant ui-grid

<script src="lib/js/angularjs/1.4.3/angular.js"></script>
<script src="lib/js/ui-grid/3.0.7/ui-grid.js"></script>
9
nsk

Assurez-vous toujours que le fichier js (angular.min.js) est référencé en premier dans le fichier HTML. Par exemple:

----------------- Cette référence seraVOMIEerreur ---------------------- --- 

< script src="otherXYZ.js"></script>
< script src="angular.min.js"></script>

----------------- Cette référence fonctionneraFONCTIONNERAcomme prévu -------------------

< script src="angular.min.js"></script>
< script src="otherXYZ.js"></script>
3
NagarajKaundinya

Comme @bmleite déjà mentionné dans les commentaires, vous avez probablement oublié de charger angular.js.

Si je crée un violon avec des directives angulaires, mais n'inclue pas angular.js, la même erreur se produit dans la console Chrome: Uncaught ReferenceError: angular is not defined

2
Mark Rajcok

Au cas où vous utiliseriez Rails et le joyau angular-Rails, le problème est facilement corrigé en ajoutant cette ligne manquante à application.js (ou ce qui est applicable dans votre cas):

//= require angular-resource
2
Timo

Je me suis heurté à cela parce que j'ai copié-collé ngBoilerplate dans mon projet sur un Mac sans que le Finder ne montre les fichiers cachés. Donc .bower n’a pas été copié avec le reste de ngBoilerplate. Ainsi, bower a déplacé des ressources vers bower_components (defult) au lieu de fournisseur (tel que configuré) et mon application n’a pas été angulaire. Probablement un cas de coin, mais cela pourrait aider quelqu'un ici.

1
Michael Bushe

Je pense que cela se produira si vous utilisez 'async différer' pour (le fichier qui contient le filtre) en travaillant avec angularjs

<script src="js/filter.js" type="text/javascript" async defer></script>

si vous le faites, supprimez simplement «différer async».

0
Elad Amsalem

Si vous avez téléchargé le fichier angular.js de Google, vous devez vous assurer que Tout le monde a Accès en lecture à cela, ou il ne sera pas chargé par votre fichier HTML. Par défaut, il semble que le téléchargement se fasse avec les autorisations Pas d’accès, vous recevrez donc également un message tel que:

GET http: //localhost/myApp/js/angular.js

Cela m'a rendu fou pendant environ une demi-heure!

0
Chris