ionic3.x版本-实现点击tab导航栏判断是否已经登陆然后加载不同页面,和退出登录功能。

html代码:
<ion-tabs #myTabs>
<ion-tab [root]="tab1Root" tabTitle="首页" tabIcon="home"></ion-tab>
<ion-tab [root]="tab2Root" tabTitle="商家" tabIcon="cart"></ion-tab>
<ion-tab [root]="tab3Root" tabTitle="我的" tabIcon="md-contact"></ion-tab>
<div class="nav3" (click)="change()"></div>
</ion-tabs>
tabs跳转控制代码
@IonicPage()
@Component({
templateUrl: 'tabs.html'
})
export class TabsPage { tab1Root = 'HomePage';
tab2Root = 'StoreNearbyPage';
tab3Root = 'MinePage'; @ViewChild('myTabs') tabRef: Tabs;
constructor(public navCtrl: NavController) { } change() {
if (localStorage.getItem('token')) {
this.tabRef.select(2);
} else {
this.navCtrl.push('LoginPage')
}
}
}
就是在我的tab栏上加了一个透明块,点击透明块的时候如果已经登录调用tab组件的select方法,选中tab实现跳转配置页面。如果未登录就使用ionic的页面跳转。把登录页push进去。
用户在我的tab栏下子页面退出登录,因为不能直接调用navCtrl.pop()方法返回我的页面。
子页面退出方法
import {IonicPage, NavController, NavParams, Navbar, App, ViewController} from 'ionic-angular';
out() {
this.common.$http('DELETE', '/logout')
.subscribe(res => {
localStorage.clear();
this.appCtrl.getRootNav().push('TabsPage');
})
}
注入ionic-angular的APP模块。直接把tab页面丢回根导航。这样在其他tab下面的子页面退出的时候就能返回首页了。
可能描述的不太好。至说出了个大概处理的思路。有想法的童鞋可以留言指导
ionic3.x版本-实现点击tab导航栏判断是否已经登陆然后加载不同页面,和退出登录功能。的更多相关文章
- 【Android - 自定义View】之自定义颜色渐变的Tab导航栏
首先来介绍一下这个自定义View: (1)这个自定义View的名称叫做 GradientTab ,继承自View类: (2)这个自定义View实现了颜色渐变的Tab导航栏(仿微信主菜单),用户在左右滑 ...
- 使用Ajax.ActionLink时,点击对应的按钮会重新加载一个页面,而不是在当前页面的指定模块加载
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 微信小程序开发之tab导航栏
实现功能: 点击不同的tab导航,筛选数据 UI: js: data:{ navbar: ['半月维保', '季度维保', '半年维保',"年度维保"], //count ...
- WebView点击加载的页面中的按钮时不弹出新窗口以及在加载后执行javascript
mWebView.setWebViewClient(new WebViewClient() { //点击网页中按钮时,在原页面打开 public boolean shouldOverrideUrlLo ...
- <asp:Button点击查询后,调用js中函数展现加载圈
<div> <div id='paneloading' style='display:none;position:fixed;top:0px;left:0px;z-index:999 ...
- [转]layui点击左侧导航栏,实现不刷新整个页面,只刷新局部
本文转自:https://blog.csdn.net/s31415926_004/article/details/84256587 其实这篇文章是给自己看的,以后忘记怎么做回来还能看一下哈哈哈哈哈哈哈 ...
- Flutter踩坑日记:Tab导航栏保持子页面状态
最近应邀票圈小伙伴躺坑Flutter,项目初步雏形完结.以原来的工具链版本为基础做了Flutter版本,不过后面还是需要优化下项目接入Redux,以及扩展一些Native方法. 这里记录一下在开发过程 ...
- 微信小程序点击顶部导航栏切换样式
类似这样的效果 <view class='helpCateList'> <!-- 类别 --> <scroll-view class='scroll-view' scro ...
- 微信小程序——tab导航栏
wxml: <view class="tab"> <view class="tab-left" bindtap="tabFun&q ...
随机推荐
- linux内核剖析(六)Linux系统调用详解(实现机制分析)
本文介绍了系统调用的一些实现细节.首先分析了系统调用的意义,它们与库函数和应用程序接口(API)有怎样的关系.然后,我们考察了Linux内核如何实现系统调用,以及执行系统调用的连锁反应:陷入内核,传递 ...
- java maven通过SMTP发送QQ邮件的完全步骤
1.首先打开QQ邮箱的SMTP服务,因为QQ邮箱对于一般的用户都是默认关闭SMTP服务的. 找到SMTP服务的选项,可以看到此处默认是关闭的,点击开启,然后腾讯会进行一些身份验证,身份验证通过以后,腾 ...
- 抽奖活动 mark
).prizeName().remainingPrize().prizeRate().prizeName().remainingPrize().prizeRate().prizeName().rema ...
- MySQL利用mysqldump在线修复或新增从库
如果数据库的数据量不是很大,可以利用mysqldump导出备份修复从库故障或新增从库实例 主库IP:192.168.1.1从库IP:192.168.1.2 1.主库服务器导出备份:db_name=`m ...
- C#批量删除注释与空行
代码发布时候有的时候需要删除代码注释与空行..方法如下 1.删除注释 方法: 第一步:打开vs2010,使用Ctrl+H快捷键,打开查询替换窗口 第二步:在‘查找选项’中,勾选‘使用’‘正则表达式’ ...
- 理解REST和RPC
REST 越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 网站开发,完全可以采用软件开发的模式.但是传统上,软件和网络是两个不同的领域,很少有交集:软件开发主要针对单机环境,网络则主要研究 ...
- dubbo的服务发现和注册如何实现
Dubbo通常我们是如何使用的? #================================================================================== ...
- 【网络编程】——Lighttpd 返回HTTP/1.1 417 Expectation Failed
最近在使用python 的 pcurl 发送 post 请求到服务端的时候[服务端使用的服务是Lighttpd],发现只要 post 请求的数据超过 1024 之后,就会返回如下错误: * Hostn ...
- c++ 异常 discards qualifiers 丢弃
src/feedbackservice.cpp:76: error: passing `const ps::spider::urlreceiver::entry::ConfigManager' as ...
- MyBatis ResultMap Assocation 返回属性为null的问题
Model: public class Employee { private Integer id; private String lastName; private String email; pr ...