2013-03-06 18 views
30

Próbuję wyświetlić skonfigurowane wartości author i version serwisu wartości kątowej w HTML kod page.Version wyświetlany jest w porządku, ale nie nazwę autor Oto kod HTMLbłąd angularjs Nieznany dostawca

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

Oto dyrektywa ...

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

a oto część usługa gdzie author i version wartości są skonfigurowane

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

Błąd Dostaję w konsoli programisty jest

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

Nawet gdy utknąłem w tym samym numerze, naprawiłem go, ale ciągle miałem ten sam problem. Zwróć uwagę, że 'function getService (serviceName, caller) { if (cache.hasOwnProperty (serviceName))' Po naprawieniu problemu ** nie zapomnij zrobić Ctrl + F5, aby wyczyścić pamięć podręczną przeglądarki. ** –

Odpowiedz

48

Upewnij się, że ładowanie tych modułów (myApp.services i myApp.directives) jako zależności od głównego modułu aplikacji coś takiego:

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

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

+0

Cóż, jestem ładowanie tych modułów.Ale jeśli problem z datą, to w jaki sposób numer wersji może zostać wyświetlony, a autor nie – agasthyan

+0

Czy możesz podać plunker lub jsfiddle z repliką problemu? Może to być literówka lub kolizja nazw usług. (Jak widać, na jednym pod warunkiem, że działa poprawnie) – bmleite

+1

Cóż, myślę, że brakowało mi załadować niektóre moduły. Dzięki temu dat pomógł :) – agasthyan

31

bmleite ma poprawną odpowiedź na temat włączenia modułu.

Jeśli jest to poprawne w twojej sytuacji, powinieneś również upewnić się, że nie zmieniasz definicji modułów w wielu plikach.

Pamiętaj:

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

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

Więc jeśli rozszerzenie istniejącego modułu, należy pamiętać, aby nie nadpisać gdy próbuje go pobrać.

+1

Nie miałem pojęcia, że ​​tak było. Definiowałem zmienną i ustawiałem ją jako równą angular.module (...) po domyślnym ustawieniu ctrls z ziarnem kątowym i otrzymywałem ten sam problem. Zaoszczędziłem dużo włosów. – Kreychek

+0

Doskonała podpowiedź do wyszukania '" angular.module ("..", "' w kodzie źródłowym, aby zobaczyć, gdzie tworzony jest moduł/"aplikacja", dzięki! – Dr1Ku

+0

Wow! To jest genialne! – ATrubka

Powiązane problemy