2013-03-06 101 views
30

我想顯示在HTML代碼page.Version角度值的服務配置的值authorversion顯示正常,但不是作者的名字 下面是HTML代碼Angularjs錯誤未知的提供

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

,這裏是哪裏authorversion值配置

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

我得到開發者控制檯中的錯誤是

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

即使我被困在同樣的問題,我解決了它,但我一直得到同樣的問題。 請注意'函數getService(serviceName,調用者){if(cache.hasOwnProperty(serviceName))' 修復問題後**不要忘記做Ctrl + F5來清除瀏覽器緩存** – 2017-02-06 15:03:57

回答

48

確保您裝載這些模塊(myApp.servicesmyApp.directives)作爲主應用程序模塊的依賴性,像這樣:

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

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

+0

那麼我是加載這些modules.but如果dat問題,那麼版本號如何顯示和作者不能 – agasthyan 2013-03-06 12:09:51

+0

你可以提供一個plunker或jsfiddle與問題的副本?這可能是一個錯字或某種服務名稱上的衝突。 (正如你所看到的,在我提供的那個上工作正常) – bmleite 2013-03-06 12:30:24

+1

以及我認爲你是我失蹤加載一些modules.Thanks dat幫助:) – agasthyan 2013-03-06 13:18:29

31

bmleite有關於包含模塊的正確答案。

如果這在你的情況下是正確的,你也應該確保你沒有重新定義多個文件中的模塊。

記住:

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

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

所以,如果要擴展一個現有的模塊,切記不要試圖把它拿來當覆蓋。

+1

我不知道是這種情況。我定義了一個變量並將其設置爲等於角度種子默認ctrls後的angular.module(...),並且遇到了同樣的問題。爲我省了很多頭髮。 – Kreychek 2014-07-04 17:44:58

+0

極好的提示搜索'「angular.module('..',」'在代碼庫中查看模塊/'app'的創建位置,謝謝! – Dr1Ku 2015-01-07 15:06:07

+0

哇!這是天才! – ATrubka 2016-03-30 16:44:28

相關問題