本文整理了使用ionic3开发时会用到的一些最基本组件及用法

1、ion-tabs

最常见的通过标签切换页面:

tabs.html

  1. <ion-tabs>
  2. <ion-tab [root]="tab1Root" tabTitle="首页" tabIcon="home"></ion-tab>
  3. <ion-tab [root]="tab2Root" tabTitle="消息" tabIcon="text"></ion-tab>
  4. <ion-tab [root]="tab3Root" tabTitle="查询" tabIcon="search"></ion-tab>
  5. <ion-tab [root]="tab4Root" tabTitle="我的" tabIcon="contact"></ion-tab>
  6. </ion-tabs>

tabs.ts

  1. import { Component } from '@angular/core';
  2. import { AboutPage } from '../about/about';
  3. import { ContactPage } from '../contact/contact';
  4. import { HomePage } from '../home/home';
  5. import { MessagePage } from '../message/message';
  6.  
  7. @Component({
  8. templateUrl: 'tabs.html'
  9. })
  10. export class TabsPage {
  11.  
  12. tab1Root = HomePage;
  13. tab2Root = MessagePage;
  14. tab3Root = AboutPage;
  15. tab4Root = ContactPage;
  16.  
  17. constructor() {
  18.  
  19. }
  20. }
  • ion-tabs位于顶部:
  1. <ion-content padding>
  2. <ion-tabs tabsPlacement="top">
  3. <ion-tab [root]="tab1" tabTitle="待办事项"></ion-tab>
  4. <ion-tab [root]="tab2" tabTitle="全部列表"></ion-tab>
  5. </ion-tabs>
  6. </ion-content>
  • 页面跳转时,定位到ion-tabs某个页签
  1. <ion-tabs tabsPlacement="top" #myTabs>
  2. <ion-tab [root]="tab1" tabTitle="页签一"></ion-tab>
  3. <ion-tab [root]="tab2" tabTitle="页签二"></ion-tab>
  4. <ion-tab [root]="tab3" tabTitle="页签三"></ion-tab>
  5. <ion-tab [root]="tab4" tabTitle="页签四"></ion-tab>
  6. </ion-tabs>
  1. import { Component,ViewChild } from '@angular/core';
  2. import { NavController,NavParams,Tabs } from 'ionic-angular';
  3.  
  4. import { SurveyPage } from '../survey/survey';
  5. import { DesignPage } from '../design/design';
  6. import { ReportPage } from '../report/report';
  7. import { FeedbackPage } from '../feedback/feedback';
  8.  
  9. @Component({
  10. selector: 'page-projectDetail',
  11. templateUrl: 'projectDetail.html'
  12. })
  13. export class ProjectDetailPage {
  14. tab1 = SurveyPage;
  15. tab2 = DesignPage;
  16. tab3 = ReportPage;
  17. tab4 = FeedbackPage;
  18.  
  19. @ViewChild('myTabs') tabRef: Tabs;
  20. pageIndex;
  21. constructor(public navCtrl: NavController,public params:NavParams) {
  22. //获取传递过来的参数
  23. this.pageIndex=this.params.get('page');
  24.  
  25. }
  26.  
  27. ionViewDidEnter(){
  28. if (this.pageIndex && this.pageIndex != '') {
  29. this.tabRef.select(this.pageIndex);
  30. }
  31. }
  32.  
  33. }

2、ion-list

  1. <ion-list>
  2. <button ion-item text-wrap (click)="goProjectDetail()">
  3. <h2 style="padding-top: 10px;">幸福家园小区</h2>
  4. <p style="margin: 10px 0;">请确认。</p>
  5. <ion-icon name="ios-checkmark-circle-outline" item-end></ion-icon>
  6. <p><ion-icon name="time"></ion-icon>2018.08.12 12:05:24</p>
  7. </button>
  8. <button ion-item text-wrap (click)="goProjectDetail()">
  9. <h2 style="padding-top: 10px;">幸福家园小区</h2>
  10. <p style="margin: 10px 0;">请确认。</p>
  11. <ion-icon name="ios-checkmark-circle-outline" item-end></ion-icon>
  12. <p><ion-icon name="time"></ion-icon>2018.08.12 12:05:24</p>
  13. </button>
  14. <button ion-item text-wrap (click)="goProjectDetail()">
  15. <h2 style="padding-top: 10px;">幸福家园小区</h2>
  16. <p style="margin: 10px 0;">请确认。</p>
  17. <ion-icon name="ios-checkmark-circle-outline" item-end></ion-icon>
  18. <p><ion-icon name="time"></ion-icon>2018.08.12 12:05:24</p>
  19. </button>
  20. </ion-list>
  • ion-list下拉展开折叠子列表,默认展开第一个子列表
  1. <ion-list>
  2. <ion-item (click)="isShow=!isShow">list1
  3. <ion-icon name="arrow-dropup" *ngIf="!isShow"></ion-icon>
  4. <ion-icon name="arrow-dropdown" *ngIf="isShow"></ion-icon>
  5. </ion-item>
  6. <ion-list *ngIf="!isShow">
  7. <ion-item (click)="showpdf()"><p>list1-1</p><ion-icon name="ios-arrow-forward"item-right></ion-icon></ion-item>
  8. </ion-list>
  9. <ion-list *ngIf="!isShow">
  10. <ion-item (click)="showpdf()"><p>list1-2</p><ion-icon name="ios-arrow-forward"item-right></ion-icon></ion-item>
  11. </ion-list>
  12. <ion-list *ngIf="!isShow">
  13. <ion-item (click)="showpdf()"><p>list1-3</p><ion-icon name="ios-arrow-forward"item-right></ion-icon></ion-item>
  14. </ion-list>
  15. <ion-item (click)="isShowjg=!isShowjg">list2
  16. <ion-icon name="arrow-dropup" *ngIf="isShowjg"></ion-icon>
  17. <ion-icon name="arrow-dropdown" *ngIf="!isShowjg"></ion-icon>
  18. </ion-item>
  19. <ion-list *ngIf="isShowjg">
  20. <ion-item (click)="showpdf()"><p>list2-1</p><ion-icon name="ios-arrow-forward"item-right></ion-icon></ion-item>
  21. </ion-list>
  22. <ion-list *ngIf="isShowjg">
  23. <ion-item (click)="showpdf()"><p>list2-2</p><ion-icon name="ios-arrow-forward"item-right></ion-icon></ion-item>
  24. </ion-list>
  25. <ion-item (click)="isShowjps=!isShowjps">list3
  26. <ion-icon name="arrow-dropup" *ngIf="isShowjps"></ion-icon>
  27. <ion-icon name="arrow-dropdown" *ngIf="!isShowjps"></ion-icon>
  28. </ion-item>
  29. <ion-list *ngIf="isShowjps">
  30. <ion-item (click)="showpdf()"><p>list3-1</p><ion-icon name="ios-arrow-forward"item-right></ion-icon></ion-item>
  31. </ion-list>
  32. </ion-list>

3、ion-button

官方提供了按钮的多种样式

  1. <button ion-button round outline style="float: right" (click)="goPage()">查看状态</button>

4、ion-select

点击选择组件时,会弹出一个选择列表。

  1. <ion-select style="max-width: 100%; margin: 0 auto;" [(ngModel)]="singles" multiple="false" cancelText="取消" okText="确定">
  2. <ion-option selected="true">option1</ion-option>
  3. <ion-option>option2</ion-option>
  4. <ion-option>option3</ion-option>
  5. </ion-select>
  • multiple属性可以控制是否多选,cancelText 和 okText可以指定ion-select按钮的文本;ion-option的selected属性可以设置默认选项。

5、ion-toggle

  1. <button ion-item text-wrap (click)="gotoPage2()">
  2. <ion-label><h2>手势解锁</h2></ion-label>
  3. <ion-toggle outline item-end icon-left checked="{{ flag }}" (ionChange)="gotoPage2()"></ion-toggle>
  4. </button>

6、Alerts

  1. import { Component } from '@angular/core';
  2. import { NavController, AlertController } from 'ionic-angular';
  3.  
  4. @Component({
  5. selector: 'page-design',
  6. templateUrl: 'design.html'
  7. })
  8. export class DesignPage {
  9.  
  10. constructor(public navCtrl: NavController, public alertCtrl: AlertController) {
  11. }
  12.  
  13. showAlert() {
  14. let alert = this.alertCtrl.create({
  15. title: '提示',
  16. message: '注册成功!',
  17. buttons: ['OK']
  18. });
  19. alert.present();
  20. }
  21.  
  22. }

7、alert-prompt

  1. import { Component } from '@angular/core';
  2. import { NavController, AlertController} from 'ionic-angular';
  3.  
  4. @Component({
  5. selector: 'page-design',
  6. templateUrl: 'design.html'
  7. })
  8. export class DesignPage {
  9.  
  10. constructor(public navCtrl: NavController, public alertCtrl: AlertController) {
  11. }
  12.  
  13. showPrompt() {
  14. let prompt = this.alertCtrl.create({
  15. title: 'alert-prompt',
  16. inputs: [
  17. {
  18. name: 'title',
  19. placeholder: 'Title'
  20. },{
  21. name: 'title',
  22. placeholder: 'Title'
  23. },
  24. ],
  25. buttons: [
  26. {
  27. text: '取消',
  28. handler: data => {
  29. // console.log('Cancel clicked');
  30. }
  31. },
  32. {
  33. text: '确认',
  34. handler: data => {
  35. // console.log('Saved clicked');
  36. }
  37. }
  38. ]
  39. });
  40. prompt.present();
  41. }
  42.  
  43. }

8、Modals 

  1. import { Component } from '@angular/core';
  2. import { NavController, ModalController } from 'ionic-angular';
  3. import { AdmissPage } from '../admiss/admiss';
  4.  
  5. @Component({
  6. selector: 'page-design',
  7. templateUrl: 'design.html'
  8. })
  9. export class DesignPage {
  10.  
  11. constructor(public navCtrl: NavController, public modalCtrl: ModalController) {
  12. }
  13.  
  14. goAdmiss() {
  15. let modal = this.modalCtrl.create(AdmissPage, {
  16. cssClass: 'custom-modal'
  17. });
  18. modal.present();
  19. }
  20. }
  • 上面代码中设置的参数cssClass: 'custom-modal'  是为了实现给模态窗口加背景浮层,需要同时设置弹出页面的样式
  1. .custom-modal {
  2.  
  3. background-color: rgba(0, 0, 0, .5) !important;
  4.  
  5. }

9、点击按钮页面跳转

  1. <button ion-button round outline style="float: right" (click)="goPage()">查看状态</button>
  1. import { Component } from '@angular/core';
  2. import { NavController, ModalController } from 'ionic-angular';
  3. import { ProjectDetailPage } from '../projectDetail/projectDetail';
  4. import { App } from 'ionic-angular';
  5.  
  6. @Component({
  7. selector: 'page-lists',
  8. templateUrl: 'lists.html'
  9. })
  10. export class ListsPage {
  11.  
  12. constructor(public navCtrl: NavController, public app: App) {
  13.  
  14. }
  15. goPage() {
  16. // this.navCtrl.push(ProjectDetailPage);
  17. this.app.getRootNavs()[0].push(ProjectDetailPage);
  18. }
  19.  
  20. }

10、返回

  1. import { Component } from '@angular/core';
  2. import { NavController } from 'ionic-angular';
  3.  
  4. @Component({
  5. selector: 'page-process',
  6. templateUrl: 'process.html'
  7. })
  8. export class ProcessPage {
  9.  
  10. constructor(public navCtrl: NavController) {
  11.  
  12. }
  13. goBack() {
  14. this.navCtrl.pop();
  15. }
  16. }

 11、ion-icon

官方提供了丰富的图标库ionicons

  1. <ion-icon name="ios-arrow-forward" style="font-size: 24px;" item-right></ion-icon>

使用ionic3快速开发webapp(二)的更多相关文章

  1. 使用ionic3快速开发webapp(一)

    Ionic可以让我们使用web技术快速构建接近原生体验的跨平台移动应用. 一.安装ionic 1.需要先安装 Node.js(版本8.x之上): 2.安装cordova 和 ionic: $ npm ...

  2. 基于领域驱动设计(DDD)超轻量级快速开发架构(二)动态linq查询的实现方式

    -之动态查询,查询逻辑封装复用 基于领域驱动设计(DDD)超轻量级快速开发架构详细介绍请看 https://www.cnblogs.com/neozhu/p/13174234.html 需求 配合Ea ...

  3. java代码生成器 快速开发平台 二次开发 外包项目利器 springmvc SSM后台框架源码

    .   权限管理:点开二级菜单进入三级菜单显示 角色(基础权限)和按钮权限      角色(基础权限): 分角色组和角色,独立分配菜单权限和增删改查权限.      按钮权限: 给角色分配按钮权限.2 ...

  4. ionic框架,快速开发webAPP神器。

    官网地址 http://www.ionicframework.com/ 这个国外框架已经很火了.会使用插件的话更好,例如支付宝支付插件,调用摄像头拍照,二维码扫描,通讯录,文件上传,推送信息等等. 最 ...

  5. jeesite快速开发平台(二)----环境搭建

    转自:https://blog.csdn.net/u011781521/article/details/54880465

  6. 快速开发平台分享-UCML快速开发七种武器

    传统的快速开发平台强调的是组件重用.构件重用,主要解决功能重用层面,一般提供了软件开发最常用的功能:表单设计.BPM(业务流程管理).报表.组织机构及权限等功能.但只有功能重用,没有过程重用,要么只能 ...

  7. SNF开发平台WinForm之十二-发送手机短信功能调用-金笛-SNF快速开发平台3.3-Spring.Net.Framework

    1.调用前组装参数 2.调用发送信息服务脚本   .调用前组装参数: BaseSendTaskEntity entity = new BaseSendTaskEntity(); entity.Mess ...

  8. SNF开发平台WinForm之二-开发-单表表单管理页面-SNF快速开发平台3.3-Spring.Net.Framework

    2.1运行效果: 2.2开发实现: 2.2.1 这个开发与第一个开发操作步骤是一致的,不同之处就是在生成完代码之后,留下如下圈红程序,其它删除. 第一个开发地址:开发-单表表格编辑管理页面 http: ...

  9. 使用 CodeIgniter 框架快速开发 PHP 应用(二)

    原文:使用 CodeIgniter 框架快速开发 PHP 应用(二) 二分钟: 建立一个 CodeIgniter 网站用CI建一个网站很容易. 这一章很短,解释了用CI制作网站时发生了些什么,哪些文件 ...

随机推荐

  1. Webservice银行报文接口设计

      Preface: 合理的软件架构设计其好处是不言而喻的,系统具有清晰的软件结构,良好的可扩展性,类的职能单一明确,系统的复杂度底.此前的一个实际项目中总结了些关于OO设计的实际应用,主要是围绕'高 ...

  2. Android5.0L退出APP横竖屏切换导致的触摸屏输入(Touch Event)无效(冻屏)问题分析(Key Event仍然有效)

    .Nexus4和Nexus5在相同的简单測试下没有重现此问题,因没有源代码所以无法Debug和打印log.兴许会尝试获取nexus的源代码以了解它的改动方案. 二.解决方案 通过初步分析.深入分析.对 ...

  3. Spring有用功能--Profile、WebService、缓存、消息、ORM

    本篇介绍一些Spring与其它框架结合的有用功能,包含:Apache CXF WebService框架.Redis缓存.RabbitMQ消息.MyBatis框架. 另外对于Profile,也是Spri ...

  4. 搜索 debian8.7.1 ,google vs baidu

    国外的 Linux 比国内流行, debian官方网站只能找到当前版本DVD文件.想找旧版的Debian在百度一圈后徒劳无功,于是把目标转向 google ,只需要输入 debian?8.7.1-i3 ...

  5. ZOJ QS Network

    QS Network Time Limit: 2 Seconds      Memory Limit: 65536 KB Sunny Cup 2003 - Preliminary Round Apri ...

  6. 获取DOM元素到页面顶部的距离,亲测有效版本(转载)

    原文:https://blog.csdn.net/u013764814/article/details/83825479 干脆点(博客就应该干脆,少扯皮) DOM元素有一个属性是offsetTop,表 ...

  7. CISP/CISA 每日一题 21

    CISSP 每日一题(答)What is the term that identifies data ona disk after the data has supposedly been erase ...

  8. HTML基础第三讲---字体

    转自:https://i.cnblogs.com/posts?categoryid=1121494 同样我们在这里继续讲一下它的body,因为它能直观的让大家观察到你所学到的成果. 这一讲,我们来学习 ...

  9. HDF文件的显示策略

    作者:朱金灿 来源:http://blog.csdn.net/clever101 hdf格式(类似还有netcdf格式)格式是国际上通用的遥感数据格式.它们都是采用不规则存储的格式,就是在一个hdf文 ...

  10. golang encoding/json

    package main import ( "bytes" "encoding/json" "fmt" ) type ColorGroup ...