【问题标题】:AngularFire - Firebase not definedAngularFire - Firebase 未定义
【发布时间】:2015-05-07 08:44:36
【问题描述】:

尝试将 AngularFire 用于一个简单的 Angular 轮询测试应用程序来存储基本对象。我尝试注入 $firebase(它记录了一个错误,建议我不推荐使用 $firebaseObject 和 $fireBaseArray)。注入其中任何一个都会导致相同的问题不变。

我四处搜索,但我发现的大多数帖子都涉及 bower.json 语法错误或特定于 JSHint 的内容。对我来说,这两者都不是。

错误信息

ReferenceError: Firebase is not defined

要符合的点...

new Firebase(...)

这是我的应用代码:

angular.module('angPoll', ['ui.router', 'firebase']).
config(...).
controller('pollsController', function($scope, pollsData) {
    $scope.pollsList = pollsData.getPolls();
}).
service('pollsData', function($firebaseObject){
    console.log($firebaseObject); <-- [verified here that the injection works]
    var fireRef = new Firebase('https://<my-ref-url>.firebaseio-demo.com/');
    var pollsRef, polls;
    pollsRef = $firebaseObject(fireRef.child('polls')).$asArray();

    this.clearPolls = clearPolls;
    this.setInitialPolls = setInitialPolls;
    this.getPolls = getPolls;
    myDataRef.set({});

    function clearPolls() {
        pollsRef.set({});
    }

    function getPolls() {
        pollsRef.on("value", function(snapshot){
            console.log(snapshot.val());
            polls = snapshot.val();
            return polls;
        })
    }

    function setInitialPolls() {
        pollsRef.set({
            one: {
                name: "fantastic poll"
            },
            two: {
                name: "mediocre poll"
            }
        });
    }

    setInitialPolls();
});

我已经对这个问题进行了研究:

Firebase, AngularFire Error: Module firebase is not available

Angularfire 'Firebase' is not defined

https://github.com/firebase/angularfire/issues/362

我还看到了关于 JSHint 的这种破坏的帖子,但不是在应用程序本身中。我的问题在于应用程序本身的功能。

我的 bower.json 以防万一:

{
  "name": "MyPoll",
  "version": "0.0.0",
  "authors": [
    "thedig"
  ],
  "license": "MIT",
  "private": true,
  "ignore": [
    "**/.*",
    "node_modules",
    "bower_components",
    "test",
    "tests"
  ],
  "dependencies": {
    "angular": "~1.3.14",
    "angular-ui-router": "~0.2.13",
    "angular-local-storage": "~0.1.5",
    "bootstrap": "~3.3.2",
    "restangular": "~1.4.0",
    "angularfire": "~1.0.0"
  }
}

Angularfire 包含在 index.htm 中:

<head>

  <link rel="stylesheet" type="text/css" href="../bower_components/bootstrap/dist/css/bootstrap.min.css">
  <link rel="stylesheet" type="text/css" href="style.css">
  <script type="text/javascript" src="../bower_components/angular/angular.js"></script>
  <script type="text/javascript" src="../bower_components/angular-ui-router/release/angular-ui-router.js"></script>
  <script type="text/javascript" src="../bower_components/angular-local-storage/dist/angular-local-storage.js"></script>
  <script type="text/javascript" src="../bower_components/restangular/dist/restangular.js"></script>
  <script type="text/javascript" src="../bower_components/lodash/dist/lodash.js"></script>
  <script type="text/javascript" src="../bower_components/angularfire/dist/angularfire.js"></script>

  <script type="text/javascript" src="MyPoll.js"></script>


</head>

【问题讨论】:

  • 您的 HTML 中是否包含 Firebase + AngularFire?
  • 是的,它通过 bower 包含在内,正在更新帖子以反映。
  • 啊哈,我明白缺少什么了。

标签: angularjs firebase angularfire


【解决方案1】:

意识到我需要 - 包括 AngularFire 和 Firebase。 Firebase 现在被识别为全局变量。

...
<script type="text/javascript" src="../bower_components/firebase/firebase.js"></script>
<script type="text/javascript" src="../bower_components/angularfire/dist/angularfire.js"></script>
...

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2014-12-23
  • 2017-12-12
  • 1970-01-01
  • 2018-04-21
  • 1970-01-01
  • 2020-06-27
  • 2014-10-16
相关资源
最近更新 更多