【发布时间】:2014-01-13 07:28:26
【问题描述】:
更具体地说,是否可以执行以下操作:
- 验证用户身份
- 根据该 user.id 访问个人资料
- 配置文件确定授权
- 更新私人信息
1.then(2 or err).then(3 or err).then(4 or err) 是直截了当的。
我知道有 $on('loaded', function(){ How do you access loaded data from .$on('loaded') in AngularFire 0.5.0 } 除非它已经“加载”并且仍然缓存 和 $on('change', function(){})。 类似的东西:
$scope.$on('$firebaseAuth:login', function(){
$scope.profile = $firebase(new..);
$scope.profile.$on('loaded', function(data){
if(data.authorized === true){
$scope.private = $firebase(new..);
$scope.private.$on('loaded', function(){
var foo = $scope.private.$child('foo');
foo = 'bar';
$scope.private.$save('foo');
$scope.private.someMethod(){..}
})
}
})
})
这没有考虑错误,而且似乎不是最干净的做事方式。是否可以使用带有或代替 $on 事件的承诺,如果可以,如何?如果不是,那么处理这种情况的最佳方法是什么,可以在此过程中发现任何错误?
【问题讨论】:
-
已在 Github 上的“master”中添加了对 AngularFire 身份验证模块中承诺的支持。很快就会有一个支持 Promise 的新版本。
-
这是个好消息,我喜欢返回的带有重要 Firebase 内置方法的对象,而且 $bind 很酷。当前版本在尝试解析依赖于来自其他异步引用的数据的 $firebase 引用时让我感到困惑。建立一个服务让我进入个人资料阶段是否可行?这将允许我开始构建一些基本的授权。
-
我将尝试构建一个在 data.authorized === true 上得到解析的自定义承诺,然后从那里开始。
标签: angularjs angularfire