2013-03-06 3 views
30

Я пытаюсь отобразить настроенные значения author и version в обслуживании углового значения в HTML коде page.Version отображается нормально, но не имя автора Вот код HTMLAngularjs Неизвестная ошибка поставщика

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

Вот директива ...

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

а вот часть службы, где author и version значения настроены

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

Ошибки я получаю в консоли разработчика является

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

Даже я был застрял в одном выпуске, я исправил его, но у меня все так же возникала проблема. Обратите внимание, что 'function getService (serviceName, caller) { if (cache.hasOwnProperty (serviceName))' После устранения проблемы ** не забудьте сделать Ctrl + F5, чтобы очистить кеш браузера. ** –

ответ

48

Убедитесь, что вы загружаете эти модули (myApp.services и myApp.directives) как зависимости от вашего основного модуля приложения , как это:

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

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

+0

Ну, я загружая эти модули. Но если dats проблема, то как номер версии может отображаться, а автор не – agasthyan

+0

Можете ли вы предоставить плункер или jsfiddle с репликой проблемы? Это может быть опечатка или какое-то столкновение по именам сервисов. (Как вы можете видеть, на том, что я предоставил, он работает правильно) – bmleite

+1

ну, я думаю, у меня не хватало, чтобы загрузить некоторые модули. Спасибо, что помогли :) – agasthyan

31

bmleite имеет правильный ответ о включении модуля.

Если это так, в вашей ситуации вы также должны убедиться, что вы не переопределяете модули в нескольких файлах.

Помните:

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

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

Так что, если вы расширяете в существующий модуль, помните, чтобы не перезаписать при попытке извлечь его.

+1

Я понятия не имел, что это так. Я определял переменную и устанавливал ее равным угловому моменту (...) после углового значения по умолчанию ctrls и получал эту же проблему. У меня много волос. – Kreychek

+0

Отличный намек на поиск '' angular.module ('..', '' в кодовой базе, чтобы увидеть, где создан модуль/'приложение, спасибо! – Dr1Ku

+0

Вау! Это гений! – ATrubka

Смежные вопросы