AngularJS 未知提供程序错误(Firebase 和 AngularFire)
AngularJS Unknown Provider Error (Firebase & AngularFire)
我一直在使用 Angular 和 Firebase 构建一个应用程序,它一直在工作,直到我决定更改目录并从头开始重新构建它以解决一些兼容性问题(使用 bootstrap)。现在,当我尝试转到 URL 时,出现以下错误:
Error: [$injector:unpr] Unknown provider: $firebaseArrayProvider <- $firebaseArray
我搜索过类似的问题,但没有找到解决我问题的答案。我已经尝试通过 bower 和链接安装 Angular,以及链接到旧版本的 AngularFire.js 和 Firebase.js。以下是涉及的每个文件的代码。
index.html
<!DOCTYPE html>
<html lang="en" ng-app="myApp">
<link rel="icon" href="img/favicon.png">
<link rel="stylesheet" href="css/dirty-soda.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
<script src="http://code.angularjs.org/1.4.8/angular.js"></script>
<script src="http://code.angularjs.org/1.4.8/angular-route.js"></script>
<head>
</head>
<body>
<div ng-view></div>
<script src="app.js"></script>
<script src="editor/editor.js"></script>
<script src="https://cdn.firebase.com/js/client/2.2.4/firebase.js"></script>
<script src="angularfire.min.js"></script>
<script src="../src/ace.js"></script>
</body>
</html>
app.js
'use strict';
angular.module('myApp', [
'ngRoute',
'myApp.editor'
]).
config(['$routeProvider', function($routeProvider) {
$routeProvider.otherwise({redirectTo: 'app/editor'});
}]);
editor.js
angular.module('myApp.editor', ['ngRoute'])
.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/editor', {
templateUrl: 'editor/editor.html',
controller: 'SnippetCtrl'
});
}])
.controller('SnippetCtrl', ['$scope','$firebaseArray','CommonProp', function($scope,$firebaseArray,CommonProp) {
$scope.username = CommonProp.getUser();
var firebaseObj = new Firebase("<Firebase URL>");
$scope.snippets = $firebaseArray(firebaseObj);
}]);
您忘记在 app.js
中包含新模块 "firebase"
app.js
angular.module('myApp', [
'ngRoute',
'myApp.editor',
'firebase'
]).
编辑:
包括来自@Explosion Pills 的答案:
在index.html中,您还应该将脚本src="app.js"移动到最后一行,以便在注册前先加载所有需要的js文件他们。
我一直在使用 Angular 和 Firebase 构建一个应用程序,它一直在工作,直到我决定更改目录并从头开始重新构建它以解决一些兼容性问题(使用 bootstrap)。现在,当我尝试转到 URL 时,出现以下错误:
Error: [$injector:unpr] Unknown provider: $firebaseArrayProvider <- $firebaseArray
我搜索过类似的问题,但没有找到解决我问题的答案。我已经尝试通过 bower 和链接安装 Angular,以及链接到旧版本的 AngularFire.js 和 Firebase.js。以下是涉及的每个文件的代码。
index.html
<!DOCTYPE html>
<html lang="en" ng-app="myApp">
<link rel="icon" href="img/favicon.png">
<link rel="stylesheet" href="css/dirty-soda.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
<script src="http://code.angularjs.org/1.4.8/angular.js"></script>
<script src="http://code.angularjs.org/1.4.8/angular-route.js"></script>
<head>
</head>
<body>
<div ng-view></div>
<script src="app.js"></script>
<script src="editor/editor.js"></script>
<script src="https://cdn.firebase.com/js/client/2.2.4/firebase.js"></script>
<script src="angularfire.min.js"></script>
<script src="../src/ace.js"></script>
</body>
</html>
app.js
'use strict';
angular.module('myApp', [
'ngRoute',
'myApp.editor'
]).
config(['$routeProvider', function($routeProvider) {
$routeProvider.otherwise({redirectTo: 'app/editor'});
}]);
editor.js
angular.module('myApp.editor', ['ngRoute'])
.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/editor', {
templateUrl: 'editor/editor.html',
controller: 'SnippetCtrl'
});
}])
.controller('SnippetCtrl', ['$scope','$firebaseArray','CommonProp', function($scope,$firebaseArray,CommonProp) {
$scope.username = CommonProp.getUser();
var firebaseObj = new Firebase("<Firebase URL>");
$scope.snippets = $firebaseArray(firebaseObj);
}]);
您忘记在 app.js
中包含新模块 "firebase"app.js
angular.module('myApp', [
'ngRoute',
'myApp.editor',
'firebase'
]).
编辑:
包括来自@Explosion Pills 的答案:
在index.html中,您还应该将脚本src="app.js"移动到最后一行,以便在注册前先加载所有需要的js文件他们。