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 ...
随机推荐
- int转换char的正确姿势
一:背景 在一个项目中,我需要修改一个全部由数字(0~9)组成的字符串的特定位置的特定数字,我采用的方式是先将字符串转换成字符数组,然后利用数组的位置来修改对应位置的值.代码开发完成之后,发现有乱码出 ...
- MySQL查询库和表占用的硬盘空间大小
在mysql中有一个默认的数据表information_schema,information_schema这张数据表保存了MySQL服务器所有数据库的信息.如数据库名,数据库的表,表栏的数据类型与访问 ...
- NameError:name ‘xrange’ is not defined
运行某代码时,报错: NameError:name 'xrange' is not defined 原因: 在Python 3中,range()与xrange()合并为range( ).我的pytho ...
- ELK & ElasticSearch 5.1 基础概念及配置文件详解【转】
转自:https://blog.csdn.net/zxf_668899/article/details/54582849 配置文件 基本概念 接近实时NRT 集群cluster 索引index 文档d ...
- 【iCore4 双核心板_ARM】例程三十六:DAC实验——输出直流电压
实验现象: 用电压表测量PA4引脚有2.0V直流电压输出. 核心代码: int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ / ...
- 【C#】读取Excel中嵌套的Json对象,Json带斜杠的问题(其三)
除了上一篇中提到的对字符串的字符替换操作,去掉Json中的转义符反斜杠\之外,还发现了更加简单的办法. 就是使用Newtownsoft.Json序列化Json时,将嵌套的Json对象(字符串)转为JO ...
- 建站工具Hexo
$ npm install hexo-cli -g $ hexo init blog $ cd blog $ npm install $ hexo server
- c++中为什么可以通过指针或引用实现多态,而不可以通过对象呢?
引言: 在c++中司空见惯的事情就是:可以通过指针和引用可以实现多态,而对象不可以. 那为什么?让我们来解开这神秘的暗纱! 1. 类对象的存储方式: 在一个类的实例中,只会存放非静态的成员变量. ...
- ThinkPHP 文件上传到阿里云OSS上(干货)
参考:http://www.thinkphp.cn/extend/789.html 1.前往阿里云github下载SDK包:https://github.com/aliyun/aliyun-oss-p ...
- HAWQ配置之客户端访问
一.配置简单的口令访问 1,建立数据库和用户 postgres=# create database epbd; CREATE DATABASE postgres=# create role user1 ...