AngularJS未知提供程序错误(Firebase和AngularFire)

时间:2015-12-28 03:49:04

标签: javascript html angularjs firebase angularfire

我一直在使用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);
}]);

1 个答案:

答案 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文件。