ionic/angularfire 上处理 $onAuth 维护的最佳方法
Best way to deal with $onAuth maintenance on ionic/angularfire
我正在使用 ionic 和 angularfire 构建应用程序,但我不理解使用 $onAuth 维护会话背后的逻辑。我知道这个功能是如何工作的,但我不知道在哪里使用它..
我是否需要在每个控制器中注入 $onAuth 并验证 authData 是否为空(然后使用 $unauth 并正确重定向用户)或者有一种方法可以实现此功能($onAuth ) 集中在另一个文件中并让 ir listining 并且只有在 authData 为 null 时才执行某些操作?
如果问题不清楚,欢迎随时提问!
在此先感谢所有提供帮助的人! :)
您可以通过多种方式实现目标。最糟糕的是采用您描述的方式并将其安装在每个控制器中,因为您应该保留您的代码 DRY。您的目标显然是只为 $onAuth
编写一次方法。
一个简单的方法是在 dom 的最顶部实例化一个 MainController
(比如最外层的 html 元素,例如 body 标签) .然后,您可以使用您的子控制器访问来自父控制器的数据,如解释的那样。 here。您可以在主控制器中注入 $onAuth
服务,让它执行您的逻辑,然后您可以使用 authData
从其所有子控制器访问主控制器的 $scope
。
一个更可重用的部分是编写一个您可以从所有控制器访问的服务。在这里找到很棒的教程。
最简单的方法是让模块的 run block and save it in your $rootScope
that can also be accessed later from all controllers. Here 中的 $onAuth
是一个验证示例。你会写
angular.module('your-module').run(function($rootScope, Auth) {
$rootScope.auth = Auth;
$rootScope.auth.$onAuth(function(authData) {
$rootScope.authData = authData;
//do anything you want here, e.g. redirect
});
}
我正在使用 ionic 和 angularfire 构建应用程序,但我不理解使用 $onAuth 维护会话背后的逻辑。我知道这个功能是如何工作的,但我不知道在哪里使用它..
我是否需要在每个控制器中注入 $onAuth 并验证 authData 是否为空(然后使用 $unauth 并正确重定向用户)或者有一种方法可以实现此功能($onAuth ) 集中在另一个文件中并让 ir listining 并且只有在 authData 为 null 时才执行某些操作?
如果问题不清楚,欢迎随时提问!
在此先感谢所有提供帮助的人! :)
您可以通过多种方式实现目标。最糟糕的是采用您描述的方式并将其安装在每个控制器中,因为您应该保留您的代码 DRY。您的目标显然是只为 $onAuth
编写一次方法。
一个简单的方法是在 dom 的最顶部实例化一个 MainController
(比如最外层的 html 元素,例如 body 标签) .然后,您可以使用您的子控制器访问来自父控制器的数据,如解释的那样。 here。您可以在主控制器中注入 $onAuth
服务,让它执行您的逻辑,然后您可以使用 authData
从其所有子控制器访问主控制器的 $scope
。
一个更可重用的部分是编写一个您可以从所有控制器访问的服务。在这里找到很棒的教程。
最简单的方法是让模块的 run block and save it in your $rootScope
that can also be accessed later from all controllers. Here 中的 $onAuth
是一个验证示例。你会写
angular.module('your-module').run(function($rootScope, Auth) {
$rootScope.auth = Auth;
$rootScope.auth.$onAuth(function(authData) {
$rootScope.authData = authData;
//do anything you want here, e.g. redirect
});
}