1、修改tabs页的图标,关键是 outline

在使用自定义图标的时候,需要修改 /theme/icons.scss 文件,但是如何定义选中前后的分别使用哪个图标呢
  定义选中前的状态
  .ion-ios-data-outline::before { content: url("../assets/fonts/dataIcon.svg");}
  定义选中后的状态
  .ion-ios-file:before { content: url("../assets/fonts/fileIcon2.svg");}

2、ts 中获取html 参数的值,segment 是e.value, select是e,不能用e.value

<ion-segment [(ngModel)]="choice" (ionChange)="segmentChanged($event)">

segmentChanged(e) {
  if (e.value == "choice1") {
    this.clickChart1();
  } else if (e.value == "choice2") {
    this.clickChart2();
  }
}

<ion-select interface="popover" (ionChange)="homeRunChanged($event)">

homeRunChanged(e) {
  console.log(e);
  this.commonService.home_run(e);
}

3、ts文件中获取map型参数的陷阱

在ts文件中,定义类型 result: any[],后来赋值 {name:bob}
  在ts中使用 result.name,编译报错
  该使用 result['name'] 注意有两个单引号

但在html文件中
  可以使用result.name, result['name'] 两种方式获取到值,前一种是angular 的方式,后一种是js 的方式

4、先loading,然后alert,使用onDidDismiss方法

let loader = this.loadingCtrl.create({
  content: "正在提交",
  duration: 3000
});
loader.present();

loader.onDidDismiss(() => {
    let toast = this.toastCtrl.create({
    message: '非常感谢您帮我们变得更好',
    duration: 2000,
    position: 'middle'
  });
  toast.present(toast);
});

也可以手动结束加载 loader.dismiss(); 或 loader.dismissAll(); 然后再alert

5、传来的json数据,如何用到echarts的饼图中

比如json数据,{"message":"ok","result":{"cz":[122.25,160.07,367.37],"industry":["石油加工","化学原料","汽车"]},"status":"200"}
但是在饼图中的数据,必须是 {'name' : '石油加工' ,'value' : 122.25}这种形式

需要添加一个转换方法
chart_data1: any=[];
this.httpApi.get<ResponseType>('/services/ea_AppIndustryStructureService/industryAccProValue?month=201704')
  .subscribe(
    data => {
      let chart_data1_x = data['result']['industry'];
      let chart_data1_y = data['result']['cz'];
      for (let i = 0; i < chart_data1_x.length; i++) {
        this.chart_data1.push({'name': chart_data1_x[i] , 'value': chart_data1_y[i]});
      }
      console.log(this.chart_data1);
      this.clickChart1();
    });

6、ngswitch 陷阱

segment 搭配上 ngswitch,可以实现非常好看的页面,但是后来发现也有一些不好的地方
  比如下面这个页面中,选项卡 A和B,A中包含了aaa,B中包含了bbb。他们在同一个html页面中,但是在选项卡切换为A时,获取不到bbb元素;选项卡切换为B,获取不到aaa元素。


  当时为了实现我的效果,就没有使用ngswitch,而是定义了两个div,一个显示一个隐藏

原创文章,欢迎转载,转载请注明出处!

Ionic开发遇到的坑整理的更多相关文章

  1. ionic开发遇到的坑及总结

    前言 ionic是一个用来开发混合手机应用的,开源的,免费的代码库.可以优化html.css和js的性能,构建高效的应用程序,而且还可以用于构建Sass和AngularJS的优化.ionic会是一个可 ...

  2. 关于ionic开发中遇到的坑与总结

    这次是第二次使用ionic开发混合app,今天算是对这个框架做一个总结,基础的我就不再重复了,网上都有教程.我就说说自己的心得和遇见的各种坑, 之后会陆续补充,想到什么说什么吧. 1.关于ionic效 ...

  3. 分享 Ionic 开发 Hybrid App 中遇到的问题以及后期发布 iOS/Android 的方方面面

    此篇文章主要整理了最近在使用 Ionic 开发 Hybrid App 过程中遇到的一些疑难点以及后期发布生成 iOS 和 Android 版本过程中的种种问题. 文章目录 Ionic 简介和项目需求介 ...

  4. Ionic开发Hybrid App问题总结

    http://ionichina.com/topic/5641b891b903cba630e25f10 http://www.cnblogs.com/parry/p/issues_about_buil ...

  5. Ionic开发实战

    转自:http://blog.csdn.net/i348018533/article/details/47258449/ 折磨的两个月!Ionic从零单排,到项目发布!遇到了很多问题但都一一解决了,此 ...

  6. Android使用WebView开发常见的坑

    原文链接:http://mp.weixin.qq.com/s?__biz=MzAwODE1NTI2MQ==&tempkey=uP3a%2BOgIN7vPbLfJp3BTCl2KabYi1%2F ...

  7. 文顶顶iOS开发博客链接整理及部分项目源代码下载

    文顶顶iOS开发博客链接整理及部分项目源代码下载   网上的iOS开发的教程很多,但是像cnblogs博主文顶顶的博客这样内容图文并茂,代码齐全,示例经典,原理也有阐述,覆盖面宽广,自成系统的系列教程 ...

  8. 简述移动端IM开发的那些坑:架构设计、通信协议和客户端

    1.前言 有过移动端开发经历的开发者都深有体会:移动端IM的开发,与传统PC端IM有很大的不同,尤其无线网络的不可靠性.移动端硬件设备资源的有限性等问题,导致一个完整的移动端IM架构设计和实现都充满着 ...

  9. Ionic 开发环境搭建

    android sdk环境搭建并非易事,本人经过无数失败,才使用以下方式成功 配置Ionic 开发环境 1.下载JDK并配置Java运行环境 http://www.oracle.com/technet ...

随机推荐

  1. Python入门-三级菜单

    作业题目: 三级菜单 作业需求: menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村':{ '爱奇艺':{}, ...

  2. 记一个JS树结构路径查找

    var a=[ { "id" : "0000", "text" : "R1", "children" ...

  3. Linux 典型应用之Mysql

    Mysql 的安装及连接 删除默认安装的 mariadb数据库 yum remove mariadb-libs.x86_64 mysql源下载的网址 https://dev.mysql.com/dow ...

  4. tailf、tail -f、tail -F三者区别(转)

    tail -f    等同于--follow=descriptor,根据文件描述符进行追踪,当文件改名或被删除,追踪停止 tail -F     等同于--follow=name  --retry,根 ...

  5. asp.net core前后端分离

    陆陆续续的看了两个礼拜的前端知识,把vue+vue-router+axios的知识撸了一遍,本来想加个element-ui来实现一下前后端分离,实施的时候却遇到了很多的坑.我本身不在一个软件开发公司上 ...

  6. C#复习笔记(3)--C#2:解决C#1的问题(实现迭代器的捷径)

    实现迭代器的捷径 从这个题目上可以看到C#1实现一个迭代器模式的话是多么的痛苦,我自己也写过不下40行的代码来实现一个迭代器,C#中的迭代器模式是通过IEnumerable和他的泛型等价物IEnume ...

  7. Oracle Profile 配置文件

    Profile是用户的配置文件,它是密码限制,资源限制的命名集合.利用profile 可以对数据库用户进行基本的资源管理,密码管理. 1 创建profile 的语法 create profile pr ...

  8. IntelliJ IDEA使用教程(非常全面)

    这个编辑器我就不再多做介绍了.直接开始新建maven hello world 的Java web项目啦 你电脑上得有jdk1.7,或者1.8,然后就是maven3.x吧,再有就是tomcat7以上吧. ...

  9. 在ASP.NET程序中用程序动态向<head>便签里添加<meta>标签

    在使用ASP.NET框架开发: 若要在Html网页中加入<meta>设置,但想通过程序动态加入: 1.如果是ASP.NET4.0以前版本: 使用HtmlMeta类加入<meta> ...

  10. python RSA 加密与签名

    PyCrypto装起来就简单多了,我是直接 sudo easy_install pycrypto 直接搞定的 先生成rsa的公私钥:打开控制台,输入 openssl 再输入 genrsa -out p ...