我有一个基于 ionic2 标签的应用程序。在一个标签上,我有一个表格。我希望应用程序在我切换到另一个选项卡时阻止,并且表单无效。
在 ng2 中,我可以在这类场景中使用routeGuard,但是在 ionic2 中是否有针对这种场景的解决方案?
从其他帖子中,我了解到 ionic2 不适用于路由,就像 Angular 2 一样。
谁能给我一个提示?
我有一个基于 ionic2 标签的应用程序。在一个标签上,我有一个表格。我希望应用程序在我切换到另一个选项卡时阻止,并且表单无效。
在 ng2 中,我可以在这类场景中使用routeGuard,但是在 ionic2 中是否有针对这种场景的解决方案?
从其他帖子中,我了解到 ionic2 不适用于路由,就像 Angular 2 一样。
谁能给我一个提示?
您可以考虑使用ngOnInit()
方法。例如,如果用户没有身份验证密钥,则在这里您不会加载仪表板。在这种情况下,您将用户重定向回其他组件,即 /login。
import { Component, OnInit} from '@angular/core';
declare var User:any;
@Component({
selector: 'app-dashboard',
templateUrl: './dashboard.component.html',
styleUrls: ['./dashboard.component.css'],
providers: [ResultService]
})
export class DashboardComponent implements OnInit {
username: string;
constructor(private router: Router, private resultService: ResultService) {
}
ngOnInit() {
if(!User.hasAuthKey()){
this.router.navigate(['login']);
}else{
var usr = User.checkAuthorized();
this.username = usr.firstname;
}
}
我在 ionic v2docs 中找到了我想要的东西:NavController
原来你可以在你要离开的页面中使用IonViewCanLeave钩子。
Nav Guards:在某些情况下,开发人员应该能够控制视图的离开和进入。为此,NavController 具有 ionViewCanEnter 和 ionViewCanLeave 方法。类似于 Angular 2 路由守卫,但更多地与 NavController 集成。例如,如果您想阻止用户离开视图
从文章中的上述段落开始阅读示例