Angulaire module config pas appelé
Je vais essayer d'obtenir ma tête autour d'AngularJS et a couru dans un problème.
var myApp = angular.module('myApp', ['myApp.services']);
myApp.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
console.log('Configuring module "myApp"');
$routeProvider.when('/dashboard', {templateUrl: 'partial/dashboard', controller: DashboardController});
$routeProvider.when('/menu', {templateUrl: 'partial/other', controller: OtherController});
$routeProvider.otherwise({redirectTo: '/dashboard'});
$locationProvider.html5Mode(true);
}]);
À ma compréhension de la configuration de la fonction doit être appelée lorsque le module est chargé. Mais il ne le fait pas!
J'ai le ng-app="myApp"
directive sur la <body>
tag. Et les scripts chargés, juste avant le corps de la balise de fermeture dans le bon ordre (dans la mesure que les questions).
<script src="angular.js"></script>
<script src="app.js"></script>
<script src="services.js"></script>
<script src="controllers.js"></script>
</body>
Je suis assez sûr que je doit être donnant sur quelque chose de trivial ici. Il devrait y avoir un message imprimé sur la console. Mais il reste vide avec aucun des erreurs ou des avertissements que ce soit.
Les parties de l'application en fonction des routes fonctionne très bien.
Mise à jour: version simplifiée de mon service.js
'use strict';
angular.module('myApp', function ($provide) {
$provide.factory('myService', function ($http) {
var service = function () {
...
service implementation
...
};
return new service();
});
});
- Ouais... il devrait. Êtes-vous sûr que tous les scripts sont à consommer? Existe-il des erreurs dans la console? Je viens de poster votre code sur un Plunkr pour vérifier les fautes de frappe, et il fonctionne comme prévu. Je ne peux que suspect sur votre
myApp.services
, vous le poster? - C'était en effet une erreur de codage dans mes services. Merci pour le pointeur.
- Je vois que vous avez posté la bonne réponse ci-dessous; une petite correction ci-dessus est cependant lorsque le
config
s'exécute. Contrairement à des services, qui a exécuté la première fois, ils sont injectés,config
blocs sont exécutés à un point donné dans le bootstrap, AngularJS. En d'autres termes, laconfig
sera toujours courir et toujours courir avant votre application en cours d'exécution. - Ça compte pour tous les modules ou seulement les modules instancié par l'injecteur?
- Les Modules de ne pas obtenir instancié par l'injecteur; services de faire. Le
config
, mais pour exécuter votre application module et les modules, il déclare que les dépendances, ainsi que toutes leurs dépendances, etc. - Très utile. Merci pour m'aider à comprendre la question.
- eu le même problème et a obtenu de me gratter la tête pendant des heures. Mais après la lecture de votre question, j'ai réalisé que mon problème est juste le manque ng-app directive ahahha. merci pour cette question.
- J'ai eu le même problème. Mon code ne fonctionne pas parce que la méthode
.run
n'est pas appelée. Quand j'ouvre google chrome, débogueur,.run
sont appelés correctement (je suis en cours d'exécution Ionique application parionic serve
commande)
Vous devez vous connecter pour publier un commentaire.
Il semble que la méthode que j'ai utilisé pour définir le service était primordial mon
myApp
module.C'est la principale ligne de
Ce code simplement redéfinit la
myApp
module et ajoute une fonction pour configurer qu'un seul.J'ai refait service.js pour cette version simplifiée et il a commencé à travailler.
J'ai été absent ng-app="myApp" à l'intérieur de ma balise html et je l'ai compris lors de la lecture de votre question 🙂
np-app=
au lieu deng-app
j'étais sur le point d'arracher ngroute et tirez dans l'interface utilisateur du routeur ! Geez. Je doit avoir besoin d'un angulaire de code correcteur d'orthographe.. merci pour votre réponseJ'ai l'habitude de voir de routage appliquée par chaînage ensemble:
Ne vois pas pourquoi le vôtre ne fonctionne pas, mais peut-être la peine d'aller.