使用ionic3快速开发webapp(二)
本文整理了使用ionic3开发时会用到的一些最基本组件及用法
1、ion-tabs
最常见的通过标签切换页面:
tabs.html
<ion-tabs>
<ion-tab [root]="tab1Root" tabTitle="首页" tabIcon="home"></ion-tab>
<ion-tab [root]="tab2Root" tabTitle="消息" tabIcon="text"></ion-tab>
<ion-tab [root]="tab3Root" tabTitle="查询" tabIcon="search"></ion-tab>
<ion-tab [root]="tab4Root" tabTitle="我的" tabIcon="contact"></ion-tab>
</ion-tabs>
tabs.ts
import { Component } from '@angular/core';
import { AboutPage } from '../about/about';
import { ContactPage } from '../contact/contact';
import { HomePage } from '../home/home';
import { MessagePage } from '../message/message'; @Component({
templateUrl: 'tabs.html'
})
export class TabsPage { tab1Root = HomePage;
tab2Root = MessagePage;
tab3Root = AboutPage;
tab4Root = ContactPage; constructor() { }
}
- ion-tabs位于顶部:
<ion-content padding>
<ion-tabs tabsPlacement="top">
<ion-tab [root]="tab1" tabTitle="待办事项"></ion-tab>
<ion-tab [root]="tab2" tabTitle="全部列表"></ion-tab>
</ion-tabs>
</ion-content>
- 页面跳转时,定位到ion-tabs某个页签
<ion-tabs tabsPlacement="top" #myTabs>
<ion-tab [root]="tab1" tabTitle="页签一"></ion-tab>
<ion-tab [root]="tab2" tabTitle="页签二"></ion-tab>
<ion-tab [root]="tab3" tabTitle="页签三"></ion-tab>
<ion-tab [root]="tab4" tabTitle="页签四"></ion-tab>
</ion-tabs>
import { Component,ViewChild } from '@angular/core';
import { NavController,NavParams,Tabs } from 'ionic-angular'; import { SurveyPage } from '../survey/survey';
import { DesignPage } from '../design/design';
import { ReportPage } from '../report/report';
import { FeedbackPage } from '../feedback/feedback'; @Component({
selector: 'page-projectDetail',
templateUrl: 'projectDetail.html'
})
export class ProjectDetailPage {
tab1 = SurveyPage;
tab2 = DesignPage;
tab3 = ReportPage;
tab4 = FeedbackPage; @ViewChild('myTabs') tabRef: Tabs;
pageIndex;
constructor(public navCtrl: NavController,public params:NavParams) {
//获取传递过来的参数
this.pageIndex=this.params.get('page'); } ionViewDidEnter(){
if (this.pageIndex && this.pageIndex != '') {
this.tabRef.select(this.pageIndex);
}
} }
2、ion-list
<ion-list>
<button ion-item text-wrap (click)="goProjectDetail()">
<h2 style="padding-top: 10px;">幸福家园小区</h2>
<p style="margin: 10px 0;">请确认。</p>
<ion-icon name="ios-checkmark-circle-outline" item-end></ion-icon>
<p><ion-icon name="time"></ion-icon>2018.08.12 12:05:24</p>
</button>
<button ion-item text-wrap (click)="goProjectDetail()">
<h2 style="padding-top: 10px;">幸福家园小区</h2>
<p style="margin: 10px 0;">请确认。</p>
<ion-icon name="ios-checkmark-circle-outline" item-end></ion-icon>
<p><ion-icon name="time"></ion-icon>2018.08.12 12:05:24</p>
</button>
<button ion-item text-wrap (click)="goProjectDetail()">
<h2 style="padding-top: 10px;">幸福家园小区</h2>
<p style="margin: 10px 0;">请确认。</p>
<ion-icon name="ios-checkmark-circle-outline" item-end></ion-icon>
<p><ion-icon name="time"></ion-icon>2018.08.12 12:05:24</p>
</button>
</ion-list>
- ion-list下拉展开折叠子列表,默认展开第一个子列表
<ion-list>
<ion-item (click)="isShow=!isShow">list1
<ion-icon name="arrow-dropup" *ngIf="!isShow"></ion-icon>
<ion-icon name="arrow-dropdown" *ngIf="isShow"></ion-icon>
</ion-item>
<ion-list *ngIf="!isShow">
<ion-item (click)="showpdf()"><p>list1-1</p><ion-icon name="ios-arrow-forward"item-right></ion-icon></ion-item>
</ion-list>
<ion-list *ngIf="!isShow">
<ion-item (click)="showpdf()"><p>list1-2</p><ion-icon name="ios-arrow-forward"item-right></ion-icon></ion-item>
</ion-list>
<ion-list *ngIf="!isShow">
<ion-item (click)="showpdf()"><p>list1-3</p><ion-icon name="ios-arrow-forward"item-right></ion-icon></ion-item>
</ion-list>
<ion-item (click)="isShowjg=!isShowjg">list2
<ion-icon name="arrow-dropup" *ngIf="isShowjg"></ion-icon>
<ion-icon name="arrow-dropdown" *ngIf="!isShowjg"></ion-icon>
</ion-item>
<ion-list *ngIf="isShowjg">
<ion-item (click)="showpdf()"><p>list2-1</p><ion-icon name="ios-arrow-forward"item-right></ion-icon></ion-item>
</ion-list>
<ion-list *ngIf="isShowjg">
<ion-item (click)="showpdf()"><p>list2-2</p><ion-icon name="ios-arrow-forward"item-right></ion-icon></ion-item>
</ion-list>
<ion-item (click)="isShowjps=!isShowjps">list3
<ion-icon name="arrow-dropup" *ngIf="isShowjps"></ion-icon>
<ion-icon name="arrow-dropdown" *ngIf="!isShowjps"></ion-icon>
</ion-item>
<ion-list *ngIf="isShowjps">
<ion-item (click)="showpdf()"><p>list3-1</p><ion-icon name="ios-arrow-forward"item-right></ion-icon></ion-item>
</ion-list>
</ion-list>
官方提供了按钮的多种样式
<button ion-button round outline style="float: right" (click)="goPage()">查看状态</button>
点击选择组件时,会弹出一个选择列表。
<ion-select style="max-width: 100%; margin: 0 auto;" [(ngModel)]="singles" multiple="false" cancelText="取消" okText="确定">
<ion-option selected="true">option1</ion-option>
<ion-option>option2</ion-option>
<ion-option>option3</ion-option>
</ion-select>
- multiple属性可以控制是否多选,cancelText 和 okText可以指定ion-select按钮的文本;ion-option的selected属性可以设置默认选项。
<button ion-item text-wrap (click)="gotoPage2()">
<ion-label><h2>手势解锁</h2></ion-label>
<ion-toggle outline item-end icon-left checked="{{ flag }}" (ionChange)="gotoPage2()"></ion-toggle>
</button>
6、Alerts
import { Component } from '@angular/core';
import { NavController, AlertController } from 'ionic-angular'; @Component({
selector: 'page-design',
templateUrl: 'design.html'
})
export class DesignPage { constructor(public navCtrl: NavController, public alertCtrl: AlertController) {
} showAlert() {
let alert = this.alertCtrl.create({
title: '提示',
message: '注册成功!',
buttons: ['OK']
});
alert.present();
} }
import { Component } from '@angular/core';
import { NavController, AlertController} from 'ionic-angular'; @Component({
selector: 'page-design',
templateUrl: 'design.html'
})
export class DesignPage { constructor(public navCtrl: NavController, public alertCtrl: AlertController) {
} showPrompt() {
let prompt = this.alertCtrl.create({
title: 'alert-prompt',
inputs: [
{
name: 'title',
placeholder: 'Title'
},{
name: 'title',
placeholder: 'Title'
},
],
buttons: [
{
text: '取消',
handler: data => {
// console.log('Cancel clicked');
}
},
{
text: '确认',
handler: data => {
// console.log('Saved clicked');
}
}
]
});
prompt.present();
} }
8、Modals
import { Component } from '@angular/core';
import { NavController, ModalController } from 'ionic-angular';
import { AdmissPage } from '../admiss/admiss'; @Component({
selector: 'page-design',
templateUrl: 'design.html'
})
export class DesignPage { constructor(public navCtrl: NavController, public modalCtrl: ModalController) {
} goAdmiss() {
let modal = this.modalCtrl.create(AdmissPage, {
cssClass: 'custom-modal'
});
modal.present();
}
}
- 上面代码中设置的参数cssClass: 'custom-modal' 是为了实现给模态窗口加背景浮层,需要同时设置弹出页面的样式
.custom-modal { background-color: rgba(0, 0, 0, .5) !important; }
9、点击按钮页面跳转
<button ion-button round outline style="float: right" (click)="goPage()">查看状态</button>
import { Component } from '@angular/core';
import { NavController, ModalController } from 'ionic-angular';
import { ProjectDetailPage } from '../projectDetail/projectDetail';
import { App } from 'ionic-angular'; @Component({
selector: 'page-lists',
templateUrl: 'lists.html'
})
export class ListsPage { constructor(public navCtrl: NavController, public app: App) { }
goPage() {
// this.navCtrl.push(ProjectDetailPage);
this.app.getRootNavs()[0].push(ProjectDetailPage);
} }
10、返回
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular'; @Component({
selector: 'page-process',
templateUrl: 'process.html'
})
export class ProcessPage { constructor(public navCtrl: NavController) { }
goBack() {
this.navCtrl.pop();
}
}
11、ion-icon
官方提供了丰富的图标库ionicons
<ion-icon name="ios-arrow-forward" style="font-size: 24px;" item-right></ion-icon>
使用ionic3快速开发webapp(二)的更多相关文章
- 使用ionic3快速开发webapp(一)
Ionic可以让我们使用web技术快速构建接近原生体验的跨平台移动应用. 一.安装ionic 1.需要先安装 Node.js(版本8.x之上): 2.安装cordova 和 ionic: $ npm ...
- 基于领域驱动设计(DDD)超轻量级快速开发架构(二)动态linq查询的实现方式
-之动态查询,查询逻辑封装复用 基于领域驱动设计(DDD)超轻量级快速开发架构详细介绍请看 https://www.cnblogs.com/neozhu/p/13174234.html 需求 配合Ea ...
- java代码生成器 快速开发平台 二次开发 外包项目利器 springmvc SSM后台框架源码
. 权限管理:点开二级菜单进入三级菜单显示 角色(基础权限)和按钮权限 角色(基础权限): 分角色组和角色,独立分配菜单权限和增删改查权限. 按钮权限: 给角色分配按钮权限.2 ...
- ionic框架,快速开发webAPP神器。
官网地址 http://www.ionicframework.com/ 这个国外框架已经很火了.会使用插件的话更好,例如支付宝支付插件,调用摄像头拍照,二维码扫描,通讯录,文件上传,推送信息等等. 最 ...
- jeesite快速开发平台(二)----环境搭建
转自:https://blog.csdn.net/u011781521/article/details/54880465
- 快速开发平台分享-UCML快速开发七种武器
传统的快速开发平台强调的是组件重用.构件重用,主要解决功能重用层面,一般提供了软件开发最常用的功能:表单设计.BPM(业务流程管理).报表.组织机构及权限等功能.但只有功能重用,没有过程重用,要么只能 ...
- SNF开发平台WinForm之十二-发送手机短信功能调用-金笛-SNF快速开发平台3.3-Spring.Net.Framework
1.调用前组装参数 2.调用发送信息服务脚本 .调用前组装参数: BaseSendTaskEntity entity = new BaseSendTaskEntity(); entity.Mess ...
- SNF开发平台WinForm之二-开发-单表表单管理页面-SNF快速开发平台3.3-Spring.Net.Framework
2.1运行效果: 2.2开发实现: 2.2.1 这个开发与第一个开发操作步骤是一致的,不同之处就是在生成完代码之后,留下如下圈红程序,其它删除. 第一个开发地址:开发-单表表格编辑管理页面 http: ...
- 使用 CodeIgniter 框架快速开发 PHP 应用(二)
原文:使用 CodeIgniter 框架快速开发 PHP 应用(二) 二分钟: 建立一个 CodeIgniter 网站用CI建一个网站很容易. 这一章很短,解释了用CI制作网站时发生了些什么,哪些文件 ...
随机推荐
- 洛谷 P1850 换教室
P1850 换教室 题目描述 对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程. 在可以选择的课程中,有 2n2n 节课程安排在 nn 个时间段上.在第 ii(1 \leq ...
- 计蒜客 429(腾讯手机地图-pi的精确值)
腾讯手机地图的定位功能用到了用户手机的多种信号.这当中有的信号的作用范围近.有的信号作用的范围则远一些.有的信号相对于用户在不同的方位强度是不同的.有的则是在不论什么一个方向上信号强度都一致的. 已知 ...
- 混合式框架-AngularJS
简单介绍 AngularJS是为了克服HTML在构建应用上的不足而设计的.HTML是一门非常好的为静态文本展示设计的声明式语言,但要构建WEB应用的话它就显得乏力了.所以我做了一些工作(你也能够认 ...
- 杭电(hdu)2053 Switch Game 水题
Switch Game Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...
- Log4j日志管理的简单实例
大型项目中非常多情况下要分析程序的日志信息,怎样管理自己的日志信息至关重要. 在应用程序中加入日志记录总的来说基于三个目的 , 监视代码中变量的变化情况,周期性的记录到文件里供其它应用进行统计分析工作 ...
- MFC中对话框的各种消息触发时间
小结:WM_CREATE是所有窗口都能响应的消息,表明本窗口已经创建完毕.可以安全的使用这个窗口了,例如在它上面画控件等等.这个状态肯定是在调用ShowWindows()显示窗口之前.WM_WM_IN ...
- BZOJ2733: [HNOI2012]永无乡(线段树合并)
Description 永无乡包含 n 座岛,编号从 1 到 n,每座岛都有自己的独一无二的重要度,按照重要度可 以将这 n 座岛排名,名次用 1 到 n 来表示.某些岛之间由巨大的桥连接,通过桥可以 ...
- codevs 5960 信使
codevs 5960 信使 题目描述 Description 战争时期,前线有n个哨所,每个哨所可能会与其他若干个哨所之间有通信联系.信使负责在哨所之间传递信息,当然,这是要花费一定时间的(以天为单 ...
- Mysql 5.7.17 解压版(ZIP版)安装步骤详解
下载 解压版下载地址(需要登录) :http://dev.mysql.com/downloads/mysql/ 下载后解压到你想要安装的目录就可以了 配置环境变量 为了方便使用,不必每次都进入bin目 ...
- ArcGIS 点要素新增点
IFeatureLayer layer = FrmMain.m_mapControl.get_Layer(0) as IFeatureLayer; IFeatureClass featureClass ...