【问题标题】:AngularJS + Firebase: Uncaught Document body has not initialized. Wait to initialize Firebase until after the document is readyAngularJS + Firebase:未捕获的文档正文尚未初始化。等到文档准备好后再初始化 Firebase
【发布时间】:2014-06-05 09:02:03
【问题描述】:

LIVE DEMO

我想使用 AngularFire 将 $rootScope.demo 绑定到 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: "/"
    });
});

很遗憾,我收到以下错误:

未捕获的文档正文尚未初始化。等待初始化 Firebase 直到文档准备好之后。

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


额外问题

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

【问题讨论】:

  • 嗨 Misha,我不清楚为什么需要在 .config() 中将其用作服务?是什么阻止你等到 doc init?一个快速的猜测是,Firebase 错误将与长轮询 (iframe) 和其他用于缓解 Web 套接字错误/兼容性问题的幻想有关。

标签: angularjs firebase angularfire


【解决方案1】:

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

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

DEMO

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 2021-12-21
    • 2022-10-16
    • 2019-12-03
    • 1970-01-01
    • 2021-05-19
    相关资源
    最近更新 更多