[英]Angular uncaught reference $injector
我剛接觸過angular,在設置項目時遇到麻煩。 我已經嘗試了我在google和stackoverflow上看到的所有內容(請不要發送鏈接到類似的問題)。 我使用角度1.5.5並參考CDN。 這是我的代碼的樣子。 謝謝!
<html ng-app="boatup">
<link href="css/one-page-wonder.css" rel="stylesheet">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-route.js"></script>
<script src="js/app.js"></script>
<script src="js/controllers.js"></script>
</head>
<body ng-controller="mainCtrl">
</body>
//in app.js
var app = angular.module('boatup', [
'boatup.controllers',
'ngRoute'
]);
//in controllers.js
app.controller('mainCtrl', function($scope) {
console.log("hello");
});
錯誤是angular.js:38未捕獲的錯誤:angular.js 38中的[$ injector:modulerr]
感謝您的任何幫助。
當您使用沒有定義的模塊或沒有在腳本中加載具有模塊定義的文件時,會導致角度Uncaught reference error
。 您尚未聲明boatup.controllers
模塊,但已將其添加為對主模塊的依賴。 聲明並定義boatup.controllers
或將其作為依賴項移除,如下所示:
angular.module('boatup', [
'ngRoute'
]);
用您的代碼替換它。
//in app.js
angular.module('boatup', [
'ngRoute'
]);
//in controllers.js
angular.module('boatup')
.controller('mainCtrl', function($scope) {
console.log("hello");
});
據我的描述所看到的,您已經開始使用項目的模塊創建不同文件的項目。 這是一個很好的決定。 但!
app
。 沒什么大不了的,但是最好避免在全局范圍內創建不必要的變量。 而且,如果您在不同文件中使用gloabl變量app
,則會使用最后加載的文件進行改寫。 因此,在您的情況下,以下解決方案將起作用。
controllers.js
angular.module('boatup.controllers', [])
.controller('mainCtrl', ['$scope', function($scope) {
console.log('hello');
}])
app.js
angular.module('boatup', ['ngRoute', 'boatup.controllers']);
並且您需要以適當的順序加載。
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.5/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.5/angular-route.min.js"></script>
<script src="controllers.js"></script>
<script src="app.js"></script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.