【问题标题】:AngularJS Unknown Provider Error (Firebase & AngularFire)AngularJS 未知提供程序错误(Firebase 和 AngularFire)
【发布时间】:2016-04-01 22:39:42
【问题描述】:

我一直在使用 Angular 和 Firebase 构建一个应用程序,它一直在工作,直到我决定更改目录并从头开始重新构建它以解决一些兼容性问题(使用引导程序)。现在,当我尝试访问我的 URL 时,出现以下错误:

错误:[$injector:unpr] 未知提供者:$firebaseArrayProvider

我搜索了类似的问题,但没有找到任何可以解决我的问题的答案。我尝试通过凉亭和链接安装 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);
}]);

【问题讨论】:

  • 您需要在尝试注册之前包含模块,即包含 angularfire before app.js
  • 我的脚本按以下顺序排列,但我仍然收到错误消息。我列出它们的方式有问题吗? Angular/AngularRoute/Firebase/AngularFire/app.js/editor.js

标签: javascript html angularjs firebase angularfire


【解决方案1】:

您忘记在 app.js 中包含新模块“firebase”

app.js

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

编辑:

包括来自@Explosion Pills 的答案:

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

【讨论】:

  • 开始工作了!非常感谢,我想我一定错过了一些非常简单的事情。但是,在我的 editor.html 页面上,即使开发工具告诉我 css 文件已正确加载,样式仍然没有显示。这是由于我所做的任何更改吗?如果需要,我可以发布小提琴。
  • 很高兴为您提供帮助。小提琴会很好!由于事情发生在其他文件上,我需要检查你的代码
猜你喜欢
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-05
  • 2013-02-21
相关资源
最近更新 更多