2013-07-15 148 views
1

我正在嘗試使用AngularJS創建一個小筆記應用程序,但是我一開始就偶然發現。這是我的.js文件:AngularJS - 未知提供者

var app = angular.module("app", ['ngResource']); 

app.factory("note", ['$resource', function($resource){ 
    return $resource("/api/notes/:id", {id:'@id'}, { 
     query: {method: "GET", isArray: true}}); 
     } 
    ] 
); 

app.controller("NotesController", function($scope, $note){ 
    console.log("I am being constructed"); 
    $scope.notes = $note.query(); 
}); 

而這裏的HTML文件:

<html> 
<head> 
    <title>Jotted</title> 
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.6/angular.min.js"></script> 
    <script src="js/controllers/controllers.js"></script> 
    <script src="http://code.angularjs.org/1.0.6/angular-resource.js"></script> 
    <link href='style/main.css' rel='stylesheet'> 
</head> 
<body ng-app="app" > 
    <div ng-controller="NotesController"> 
     <div ng-repeat="note in notes"> 
      {{note.title}} 
     </div>   
    </div> 
</body> 
</html> 

我已經嘗試添加

NotesController.$inject("$scope", "Note"); 

,但只給了馬一個錯誤,指出NotesController不有一個名爲「$注入」的方法。顯示

沒有和瀏覽器返回一個錯誤:「錯誤:未知提供商:$ noteProvider < - $注意」。當然,我錯過了一些明顯的東西,但我不能把它放在手指上。問題在哪裏?

+1

附上ngResource JS文件以前生產controllers.js文件。 – pdegand59

回答

4

刪除您的$ note前的$ Sign。美元符號只是識別內部提供者的框架約定,...。

例如嘗試:

var app = angular.module("app", ['ngResource']); 

app.factory("note", ['$resource', function($resource){ 
    return $resource("/api/notes/:id", {id:'@id'}, { 
     query: {method: "GET", isArray: true}}); 
     } 
    ] 
); 

app.controller("NotesController", function($scope, note){ 
    console.log("I am being constructed"); 
    $scope.notes = note.query(); 
}); 
+0

@ groovy354,儘量在你的代碼中保持一致,你使用min-safe合成器作爲服務,爲什麼不把它用於控制器? 'app.controller(「NotesController」,[「$ scope」,「note」,function($ scope,note){...}]);' – pdegand59

+0

@ maximilian-fischer謝謝, –

相關問題