如果表单无效,如何阻止导航到其他选项卡

时间:2017-03-08 15:43:59

标签: routing ionic2 angular2-guards

我有一个基于ionic2标签的应用程序。在一个标签上我有一个表格。我希望应用程序在切换到另一个选项卡时阻止,并且表单无效。

在ng2中,我可以使用routeGuard来表示这些情况,但是在离子2中是否存在这种情况的解决方案?

从其他帖子我了解到ionic2不像Angular 2那样处理路由。

任何人都可以给我一个提示吗?

2 个答案:

答案 0 :(得分:2)

您可以考虑使用ngOnInit()方法。对于ex-在这里,如果用户没有auth密钥,则不要加载仪表板。在这种情况下,您将用户重定向回其他组件,即/ 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;
  }

}

答案 1 :(得分:0)

我在离子v2docs中找到了我想要的东西:NavController

原来你可以使用 IonViewCanLeave 钩子 在您离开的页面中为此。

  

导航卫队:    在某些情况下,开发人员应该能够控制离开和进入的视图。为了实现这一点,NavController具有ionViewCanEnter和ionViewCanLeave方法。类似于Angular 2路线防护,但与NavController更加集成。例如,如果您想阻止用户离开视图

从文章上面的段落开始阅读