2013-03-06 2 views
30

Je suis en train d'afficher les valeurs configurées author et version en service de valeur angulaire dans le code html page.Version est affiché bien, mais pas le nom de l'auteur Voici le code htmlerreur AngularJS fournisseur inconnu

<!doctype html> 
<html lang="en" ng-app="myApp"> 
<head> 
    <meta charset="utf-8"> 
    <title>My AngularJS App</title> 
    <link rel="stylesheet" href="css/app.css"/> 
</head> 
<body> 
    <ul class="menu"> 
    <li><a href="#/view1">view1</a></li> 
    <li><a href="#/view2">view2</a></li> 
    </ul> 

    <div ng-view></div> 

    <div>Angular seed app: v<span app-version></span></div> 
    <div>Author is : <span app-author></span></div> 


    <script src="lib/angular/angular.js"></script> 
    <script src="js/app.js"></script> 
    <script src="js/services.js"></script> 
    <script src="js/controllers.js"></script> 
    <script src="js/filters.js"></script> 
    <script src="js/directives.js"></script> 
</body> 
</html> 

Voici la directive ...

angular.module('myApp.directives', []). 
    directive('appVersion', ['version', function(version) { 
    return function(scope, elm, attrs) { 
     elm.text(version); 
    }; 
    }]) 
    .directive('appAuthor', ['author', function(author) { 
    return function(scope, elm, attrs){ 
     elm.text(author); 
    }; 
    }]); 

et voici la partie de service où author et version valeurs sont configurées

angular.module('myApp.services', []). 
    value('version', '0.1') 
    .value('author','JIM'); 

L'erreur que je reçois dans la console développeur est

Error: Unknown provider: authorProvider <- author <- appAuthorDirective 
+0

Même si j'étais coincé dans le même problème, je l'ai corrigé mais j'ai continué à avoir le même problème. Notez que 'function getService (serviceName, caller) { if (cache.hasOwnProperty (serviceName))' Après avoir résolu le problème ** n'oubliez pas de faire Ctrl + F5 pour effacer le cache du navigateur. ** –

Répondre

48

Assurez-vous que vous chargez les modules (myApp.services et myApp.directives) en tant que dépendances de votre module principal de l'application , comme ceci:

angular.module('myApp', ['myApp.directives', 'myApp.services']); 

plunker:http://plnkr.co/edit/wxuFx6qOMfbuwPq1HqeM?p=preview

+0

Eh bien, je suis en chargeant ces modules. mais si le problème se pose alors comment le numéro de version pourrait-il être affiché et l'auteur non – agasthyan

+0

Pouvez-vous fournir un plunker ou un jsfiddle avec une réplique du problème? Il pourrait s'agir d'une faute de frappe ou d'une sorte de collision sur les noms de service. (Comme vous pouvez le voir, sur celui que j'ai fourni qu'il fonctionne correctement) – bmleite

+1

Eh bien, je pense que u si je manquais de charger des modules.Thanks dat aidé – agasthyan

31

bmleite a la bonne réponse au sujet, y compris le module.

Si cela est correct dans votre situation, vous devez également vous assurer que vous n'êtes pas redéfinir les modules dans plusieurs fichiers.

Rappelez-vous:

angular.module('ModuleName', []) // creates a module. 

angular.module('ModuleName')  // gets you a pre-existing module. 

Donc, si vous étendez un module existant, souvenez-vous de ne pas écraser lorsque vous essayez de le chercher.

+1

:) Je ne savais pas qui était le cas. Je définissais une variable et le définissais comme égal à angular.module (...) après les ctrls par défaut angulaire-seed, et obtenais ce même problème. M'a sauvé beaucoup de cheveux. – Kreychek

+0

excellent indice pour rechercher ' « angular.module (« .. », »' dans une base de code pour voir où le module/« app » est créée, merci! – Dr1Ku

+0

Wow! C'est génial! – ATrubka

Questions connexes