ionic1地区(省、市、区)选择DEMO

这只是一个ionic1地区(省、市、区)选择Demo,并不是一个插件,不涉及任何原生的东西。

地区选择Demo.gif

Demo已开源,项目地址:https://github.com/hhjjj1010/ionic1-area-picker-demo


关于地区数据

  1. 地区数据是保存在本地的area.json文件里面,使用$http.get("js/area.json")获取数据到项目中。
  2. 地区数据很少有发生变化,所以很适合存在本地,减少从服务器获取数据的时间。
  3. 当然,如果你一定要从服务器上去获取,也不是不可以。如果数据格式与当前项目的格式不相同的话,那相应的service的处理也要变化。

关于界面显示

  1. 地区选择的界面通过一个modal层来弹出来,主要是为了方便值传递。

  2. 在ionic-modal-view里面使用ion-slide-box,设置ion-slide-box的高度为全屏时使用height=100%不起作用,只能用ng-style把屏幕的高度给它。

  3. 一开始使用ion-veiw的方式来做的,选择了地区之后使用广播的方式回传到上一个页面。后来放弃了,因为出现了一个问题,没能完全解决掉。

  4. 第一个页面需要有地区选择的广播监听处理,从它进入的下一个页面也有这个监听处理。在第二个页面上完成地区选择之后,两个页面的监听事件都会被触发。

  5. 目前$ionicModal只带了一种从下方弹出的动画。自定义$ionicModal的动画,比如:从右边往左弹出。

    /*================ 自定义$ionicModal动画 ================*/
     .slide-in-right {
       -webkit-transform: translateX(-100%);
       transform: translateX(100%);
     }
    
     .slide-in-right.ng-enter, .slide-in-right > .ng-enter {
       -webkit-transition: all cubic-bezier(0.1, 0.7, 0.1, 1) 400ms;
       transition: all cubic-bezier(0.1, 0.7, 0.1, 1) 400ms;
     }
    
     .slide-in-right.ng-enter-active, .slide-in-right > .ng-enter-active {
       -webkit-transform: translateX(0);
       transform: translateX(0);
     }
    
     .slide-in-right.ng-leave, .slide-in-right > .ng-leave {
       -webkit-transition: all ease-in-out 250ms;
       transition: all ease-in-out 250ms;
     }
    
     .slide-in-left {
       -webkit-transform: translateX(-100%);
       transform: translateX(100%);
     }
    
     .slide-in-left.ng-enter, .slide-in-left > .ng-enter {
       -webkit-transition: all cubic-bezier(0.1, 0.7, 0.1, 1) 400ms;
       transition: all cubic-bezier(0.1, 0.7, 0.1, 1) 400ms;
     }
    
     .slide-in-left.ng-enter-active, .slide-in-left > .ng-enter-active {
       -webkit-transform: translateX(0);
       transform: translateX(0);
     }
    
     .slide-in-left.ng-leave, .slide-in-left > .ng-leave {
       -webkit-transition: all ease-in-out 250ms;
       transition: all ease-in-out 250ms;
     }
    
     /*================ 自定义$ionicModal动画 ================*/
    

关于$ionicModal的再封装

  1. 选择地区的界面是用一个modal层弹出来的,因为在实际项目中,可能很多地方都会用到,所以就把对modal层的初始化,show、hide以及remove封装到一个service中。同时,这个service还包括选中省、市、区之后的操作。
  2. 因为modal层的缓存的原因,所以在modal层关闭的时候是调用的remove方法,每次弹出的modal层都是重新初始化出来的。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • W3C标准中对css3的transition这是样描述的:“css的transition允许css的属性值在一定的...
    青春前行阅读 5,295评论 0 5
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 6,857评论 0 11
  • 男女恋人,过问前任,历届前任都是可以被理解,曾经喜欢 现在不喜欢的人还要汇报么! 吵架,每次主动认错 求饶,三次五...
    安枫阅读 1,828评论 0 0
  • 若果你们没有一颗忏悔之心,付工价(死)的勇气……我告诉你们不要再用你自己的方法拯救自己了… 你哭看祷告是要给众人看...
    香江黄牧阅读 2,593评论 0 0
  • 2017年秋季开学后的第一次亲子阅读在友邻书社开始了。首先我讲了《海伦的大世界》,孩子们都是二年级以上小学...
    仲夏夜的天空阅读 1,747评论 0 0

友情链接更多精彩内容