AngularJS未知提供者错误(Firebase&AngularFire)

3

我一直在使用Angular和Firebase构建应用程序,它一直运行良好,直到我决定更改目录并从头开始构建它以修复一些兼容性问题(使用bootstrap)。现在当我尝试访问我的URL时,会出现以下错误:

Error: [$injector:unpr] Unknown provider: $firebaseArrayProvider <- $firebaseArray

我已经查询了类似的问题,并没有找到能解决我的问题的答案。我尝试通过bower安装Angular,通过链接安装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之前包含angularfire模块。 - Explosion Pills
我的脚本按照以下顺序排列,但我仍然收到错误。我列出它们的方式有问题吗?Angular / AngularRoute / Firebase / AngularFire / app.js / editor.js - tjq
1个回答

3

你忘记在app.js中引入新的模块"firebase"。

app.js

angular.module('myApp', [
  'ngRoute',
  'myApp.editor',
  'firebase'
]).

编辑:

包括@Explosion Pills的回答:

index.html 中,你还应该将脚本 src="app.js" 移到最后一行,以便在注册它们之前先加载所有所需的js文件。


成功了!非常感谢,我想我一定错过了什么非常简单的东西。然而,在我的editor.html页面上,即使开发工具告诉我css文件已经被正确加载,样式仍然没有显示出来。这是由于我所做的任何更改导致的吗?如果需要,我可以发布一个Fiddle。 - tjq
很高兴能帮忙。一个 JSFiddle 示例会很好!由于这种情况是在另一个文件中发生的,我需要检查一下你的代码。 - Quy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接