0

我正在尝试的是:登录时,将配置文件信息添加到范围,然后在注销时使用取消关联回调(取消绑定),这样一个用户的垃圾不会与下一个用户混合。

它适用于初始登录,但注销后登录失败。有什么建议么?我注意到这一点通常是不相关的。

    $scope.$on('angularFireAuth:login', function(){
        //attach current profile info to scope
        angularFire(fbUrl + 'profiles/user-' + $scope.auth.id , $scope, "profile",{}).
        then(function(unbind){
            console.log($scope.profile);
            $scope.$on('angularFireAuth:logout', function(){
                    //detach current profile info from scope
                    unbind();
            });
        });
    });
4

1 回答 1

0

正如您所指出的,您不能有重复的值:)。由于您还询问是否有更好的方法来使用回调,这里有一些额外的想法。我建议从 Promise 回调中删除注销事件侦听器,原因如下:

  1. 您最终可能希望对该事件执行与登录事件无关的其他事情,因此您希望保持关注点分离。
  2. $scope您可能希望在应用程序的其他地方取消绑定配置文件信息,因此将其附加到无论如何都是有意义的。

你可能想做更多这样的事情:

$scope.$on('angularFireAuth:login', function(){
  //attach current profile info to scope
  angularFire(fbUrl + 'profiles/user-' + $scope.auth.id , $scope, "profile",{}).
  then(function(unbind){
    $scope.unbindProfile = unbind;      
  });
});

$scope.$on('angularFireAuth:logout', function(){
  //detach current profile info from scope
  if($scope.unbindProfile) $scope.unbindProfile();
});
于 2013-11-06T21:53:23.530 回答