我有一个基于ionic2标签的应用程序。在一个标签上我有一个表格。我希望应用程序在切换到另一个选项卡时阻止,并且表单无效。
在ng2中,我可以使用routeGuard来表示这些情况,但是在离子2中是否存在这种情况的解决方案?
从其他帖子我了解到ionic2不像Angular 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更加集成。例如,如果您想阻止用户离开视图
从文章上面的段落开始阅读