我一直在使用Angular和Firebase构建一个应用程序,它一直在工作,直到我决定更改目录并从头开始再次构建它以修复一些兼容性问题(使用bootstrap)。现在当我尝试转到我的URL时,我收到以下错误:
错误:[$ injector:unpr]未知提供者:$ 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);
}]);
答案 0 :(得分:3)
您忘了添加新模块&#34; firebase&#34;在app.js
<强> app.js 强>
angular.module('myApp', [
'ngRoute',
'myApp.editor',
'firebase'
]).
修改强>
包括来自@Explosion Pills的答案:
在 index.html 中,您还应该移动脚本src =&#34; app.js&#34;到最后一行,以便在注册之前先加载所有必需的js文件。