美文网首页ionic3讨论ionic3.0开发
SRM移动应用之通讯录模块

SRM移动应用之通讯录模块

作者: 薪火设计 | 来源:发表于2017-07-27 09:34 被阅读99次

前言

由于之前做的SRM移动应用采用的是ionic1.x框架进行开发的,由于性能方便的诟病,导致用户体验不是很友好,于是想着怎么样去提高应用的性能问题。此时刚好ionic3.x框架已发布,由于ionic1.x框架是在ng1.x的框架基础上开发的,但是ionic3.x是在ng4.x基础上开发的。于是呼去ng官网上去了解了ng的一下语法及规则的使用,发现ng4.x不向前兼容,ng4.x是基于Es6标准进行开发的。本着出生不拍牛犊的性子,觉得升级应该不会太难,没想到这里面的坑太多了,费了九牛二虎之力才做了一个通讯录模块。为了后续用ionic3.x开发的同志们避免我的覆辙,走太多的弯路,本着开源的精神特此将通讯录模块贡献给大家。

需求

业务需求描述

业务需求描述

1.搜索关键字,将通讯录检索出来,并分组显示,并且可以清空搜索的关键字。

2.高亮显示关键字。

3。右侧中的首字母悬浮在右侧,点击时可快速定位。显示点击的字母居中显示,并带有滑动动画效果。

根据上面的效果图,我们编写静态页面模拟数据,整理好思路,我们可以了解到我们在开发的时候需要定义一下属性。

1,定义一个字符串存放请求的通讯录的地址,定义一个字符串变量存放搜索的关键字,定义一个数组存放右侧检出的首字母,定义一个二维数组存放通讯录数据,定义一个二维数组存放搜索后的通讯录数据。

代码的实现

搜索关键字高亮显示

由于之前ng1.x的过滤器,无法向后兼容,ng4.x采用的是pipe管道进行过滤,了解了一下使用之后开始撸代码咯。实现方式如下:

模拟本地数据请求的通讯录如下

由于后端返回的数据格式,和我需要处理的数据格式不匹配,所以首先进行了数据格式化处理之后,

搜索关键字分组显示

由于后端返回的数据格式,和我需要处理的数据格式不匹配,所以首先进行了数据格式化处理之后,在通过Array.fliter的方法进行过滤处理.实现的代码如下:

右侧首字母定位

给每一个通讯录分组的搜字母一个id属性,通过ElementRef服务找到当前的dom节点并获取当前的位置, 通过ionic3中content中提供的scrollTo函数属性快速定位,实现过程如下:

渲染的模板页面如下

实现的Class类如下:

总结:

虽然功能需求比较简单,但是由于对ng4.x的框架不是很了解导致走了不少弯路。希望后续能够一路顺风下去。

相关文章

  • SRM移动应用之通讯录模块

    前言 由于之前做的SRM移动应用采用的是ionic1.x框架进行开发的,由于性能方便的诟病,导致用户体验不是很友好...

  • SRM移动应用之消息列表模块

    前言 最近一段时间,一直被其他事物干扰这,导致移动应用组件这块的开发进展比较缓慢,好在没有轻言放弃,一有空就折腾起...

  • SRM移动应用之待办事项模块

    前言 对于使用angular开发的攻程师们来说,升级是一件非常痛苦的事情。AngularJS最大版本号只有1.x,...

  • 基于ionic3框架开发之px转REM布局实现过程

    前言 由于以前的srm移动应用项目采用ionic1.x版本进行开发的,由于性能不足诟病,导致想要对srm移动框架...

  • SRM移动应用之单向选择器的使用

    前言 在使用ionic1.x版本开发移动应用的小伙伴们来说,做一个从底部弹出的选择器对一个初出茅庐的我来说比较困难...

  • SRM的集成

    说到SRM和SAP后勤模块的集成,一般企业都选择SRM作为前端,把操作结果传递到SAP进行同步。 从技术角度,SR...

  • SRM移动开发接口规范

    简介 由于目前SRM移动应用API接口返回的的格式比较混乱,为了能够是确保API接口统一规范,定义以下规范,编写是...

  • 结构化损失的理解(Structural Risk)

    SRM Structural risk minimization (SRM) (Vapnik and Chervo...

  • 2018-08-13

    产投集团-党建平台项目我的模块更新个人信息查看 通讯录模块1、新增通讯录搜索功能 组织架构模块1、新增部门介绍查看...

  • C位出道的通讯录模块

    1、前言 通讯录模块作为很多产品的基础模块,常常扮演着或重或轻的组成部分。由产品定位不同,通讯录模块可以或简单或复...

网友评论

本文标题:SRM移动应用之通讯录模块

本文链接:https://www.haomeiwen.com/subject/klwakxtx.html