AngularJS + Firebase : Uncaught Document body has not initialized. 等待文档准备好后初始化 Firebase

标签 angularjs firebase angularfire

LIVE DEMO

我想使用 AngularFire 将 $rootScope.demo 绑定(bind)到 Firebase 模型。

Here is what I'm trying to do:


<!DOCTYPE html>
<html ng-app="Demo">
<head>
  <meta charset="utf-8">
  <title>Demo</title>

  <script src="//code.angularjs.org/1.3.0-beta.5/angular.js"></script>
  <script src="//code.angularjs.org/1.3.0-beta.5/angular-route.js"></script>
  <script src='//cdn.firebase.com/js/client/1.0.11/firebase.js'></script>
  <script src="//cdn.firebase.com/libs/angularfire/0.7.1/angularfire.min.js"></script>
</head>
<body ng-view>
</body>
</html>

angular.module("Demo", ["ngRoute", "firebase"])
.config(function($routeProvider, $locationProvider) {
  $locationProvider.html5Mode(true);

  var resolve = {
    whatever: function ($q, $rootScope, $firebase) {
      var defer = $q.defer();

      // I use a different URL in my app as you might guess
      var demoRef = new Firebase("https://demo.firebaseio.com");

      $firebase(demoRef).$bind($rootScope, "demo").then(function() {
        defer.resolve($rootScope.demo);
      });

      return defer.promise;
    }
  };

  $routeProvider
    .when("/", {
      controller: function($scope) {
        $scope.message = "Hello World!";
      },
      template: "<div>{{ message }}</div>",
      resolve: resolve
    })
    .otherwise({
      redirectTo: "/"
    });
});

不幸的是,我收到以下错误:

Uncaught Document body has not initialized. Wait to initialize Firebase until after the document is ready.

这是为什么呢?你会如何解决它?


奖励问题

理想情况下,我希望我的 Firebase 模型位于服务中而不是 $rootScope 中,但我不确定如何在应用引导之前将 Firebase 模型加载到服务中。有什么想法吗?

最佳答案

显然,将 ng-viewbody 移动到内部元素可以解决该问题:

<body>
  <div ng-view></div>
</body>

DEMO

关于AngularJS + Firebase : Uncaught Document body has not initialized. 等待文档准备好后初始化 Firebase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23195003/

相关文章:

angularjs - Node Express 不是重定向,而是返回一个字符串

java - Firebase - 实时数据库为用户抛出异常设置附加值

Firebase 身份验证 : Linking Anonymous Account

javascript - 你如何对 AngularFire 集合进行排序?

angularjs - 如何使用 AngularFire 对对象应用部分更新

javascript - AngularJS 输入类型数字与字符串模型

javascript - 传单 Angular Directive(指令)中的 KML

javascript - Angular.js 如何验证本例中的表单?

java - 如何检查 Firebase 应用程序是否已在 Android 上初始化

angularjs - Firebase 与 AngularFire