0

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

在 ng2 中,我可以在这类场景中使用routeGuard,但是在 ionic2 中是否有针对这种场景的解决方案?

从其他帖子中,我了解到 ionic2 不适用于路由,就像 Angular 2 一样。

谁能给我一个提示?

4

2 回答 2

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;
  }

}
于 2017-03-08T16:06:46.743 回答
0

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

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

Nav Guards:在某些情况下,开发人员应该能够控制视图的离开和进入。为此,NavController 具有 ionViewCanEnter 和 ionViewCanLeave 方法。类似于 Angular 2 路由守卫,但更多地与 NavController 集成。例如,如果您想阻止用户离开视图

从文章中的上述段落开始阅读示例

于 2017-03-09T22:04:31.417 回答