2013-03-06 16 views
30

Ich versuche, die konfigurierten Werte author und version in Winkelwertdienst in html page.Version Code angezeigt wird angezeigt in Ordnung, aber nicht der Name des Autors Hier ist der HTML-CodeAngularJS Fehler Unbekannter Anbieter

<!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> 

hier ist die Richtlinie ...

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); 
    }; 
    }]); 

und hier ist der Service-Bereich, wo author und version Werte konfiguriert sind

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

Der Fehler, ich bin in Entwickler-Konsole bekommen ist

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

Sogar ich war in derselben Ausgabe stecken geblieben, ich reparierte es, aber ich bekam dasselbe Problem. Beachten Sie, dass 'Funktion getService (ServiceName, Aufrufer) { if (cache.hasOwnProperty (serviceName))' Nach der Behebung Problem ** vergessen Sie nicht, Strg + F5 zum Löschen des Browser-Cache. ** –

Antwort

48

sicher, dass Sie diese Module laden (myApp.services und myApp.directives) als Abhängigkeiten Ihres Haupt-App-Modul , wie folgt aus:

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

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

+0

Nun, ich bin Laden Sie diese Module. Aber wenn Dats das Problem, dann wie könnte Versionsnummer angezeigt werden und Autor nicht – agasthyan

+0

Können Sie einen Plunker oder jsfiddle mit einer Replik des Problems bieten? Es könnte ein Tippfehler oder eine Art Kollision bei Servicenamen sein. (Wie Sie sehen können, auf der einen, die ich zur Verfügung gestellt habe funktioniert es richtig) – bmleite

+1

gut ich denke, du fehlst mir, um einige Module zu laden. Danke half :) – agasthyan

31

bmleite hat die richtige Antwort über die Aufnahme des Moduls.

Wenn dies in Ihrer Situation richtig ist, sollten Sie auch sicherstellen, dass Sie die Module nicht in mehreren Dateien neu definieren.

Denken Sie daran:

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

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

Wenn Sie also ein vorhandenes Modul erweitern, denken Sie daran nicht zu überschreiben, wenn sie versuchen, sie zu holen.

+1

Ich hatte keine Ahnung, dass das der Fall war. Ich habe eine Variable definiert und sie gleich angular.module (...) nach den angular-seed Standard-Ctrls gesetzt und bekam das gleiche Problem. Ersparte mir viel Haar. – Kreychek

+0

Hervorragender Hinweis, nach '' angular.module ('..', ''in einer Codebasis zu suchen, um zu sehen, wo das Modul /' app 'erstellt wird, danke! – Dr1Ku

+0

Wow! Das ist Genie! – ATrubka

Verwandte Themen