【问题标题】:Firebase + angularfire getting current user before controller loadsFirebase + angularfire 在控制器加载之前获取当前用户
【发布时间】:2014-10-17 21:21:50
【问题描述】:

我正在关注official examples 在触发角度控制器之前获取用户,但在使用此方法时从未触发控制器。如果我删除 resolve: state_resolver 行,控制器就会触发,这意味着我的解析器有问题。任何想法我在这里做错了什么?

.config(function($stateProvider) {
  var state_resolver;
  state_resolver = {
    "current_user": [
      "simpleLogin", function(simpleLogin) {
        return simpleLogin.$getCurrentUser();
      }
    ]
  };
  return $stateProvider.state("dash", {
    url: "/dash",
    templateUrl: "templates/dash.html",
    controller: "DashCtrl",
    resolve: state_resolver
  });
});

【问题讨论】:

  • 嗨罗密欧!看起来我们需要更多的尽职调查来帮助您解决这个问题。您是否添加了一个名为 simpleLogin 的服务,如路由示例中所述?您可以在此处包含该代码以及控制器吗?您的 JavaScript 控制台中有什么错误,我们使用的是什么版本?
  • 另外,您应该尝试在解析函数中处理 then(success, failed) 方法并将它们输出到 console.log 以查看发生了什么,或者在调试器中添加断点。

标签: angularjs firebase angularfire firebasesimplelogin


【解决方案1】:

如果以下使用 $timeout 的示例有效,那么您的 simpleLogin 服务可能存在问题,该服务没有响应。

.config(function($stateProvider) {
    var state_resolver;
    state_resolver = {
        "current_user": function($timeout) {
            return $timeout(function () {console.log('OK');}, 5000);
        }
    };

【讨论】:

  • 数组存在于他们的examples 中(向下滚动到“使用路由器简单登录”)
  • 好的,你还能在没有数组的情况下测试版本吗?
  • 是的,在再次查看他们的示例之前我确实这样做了 :)
  • 数组表示法和非数组表示法都失败了?
  • 您能否使用我在回复中添加的简单 $timeout 进行测试?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-19
  • 2020-11-30
  • 1970-01-01
  • 1970-01-01
  • 2017-06-11
  • 2017-04-06
  • 2020-03-29
相关资源
最近更新 更多