【问题标题】:Wait for Firebase to completely load in Angular Service等待 Firebase 完全加载到 Angular 服务中
【发布时间】:2014-02-06 20:31:55
【问题描述】:

我有一个问题,我想在路由更改后立即从服务中触发一个方法。该方法必须在 Firebase 上查找对象:

 app.service('document',function($q,$firebase){

    var databaseReference   = new Firebase(firebase),
        database            = $firebase(databaseReference);

            return{

                getDocument: function(title){

                    return database.documents[title];
                }

            }
    });

不幸的是,documents 属性不会直接加载;出现需要几毫秒。

我知道我可以将其包装在一个承诺中,但我如何才能让服务仅在该承诺得到解决时才返回?

【问题讨论】:

    标签: angularjs firebase promise


    【解决方案1】:

    如果您使用 Angular ui-router,您可以将一个或多个 Promise 放入与您的控制器处于相同状态的 resolve 块中,并将它们声明为要注入您的控制器的依赖项。在所有这些承诺都得到解决之前,控制器不会被创建,并且在您的控制器中,您将可以访问已解决的承诺。请参阅https://github.com/angular-ui/ui-router/wiki#resolve 了解更多信息。

    【讨论】:

      猜你喜欢
      • 2018-04-01
      • 2011-12-23
      • 2021-02-05
      • 2013-10-31
      • 2019-02-10
      • 1970-01-01
      • 2023-03-08
      • 2020-08-29
      • 1970-01-01
      相关资源
      最近更新 更多