热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

数据过滤器使用法则

数据过滤器使用法则相信很多企业版用户已经发现编辑器出现了一个新功能「数据过滤器」,然而打开这个功能之后,又不知道怎么用。今天我们就来简单入门一下这个新功
数据过滤器使用法则

相信很多企业版用户已经发现编辑器出现了一个新功能「数据过滤器」,然而打开这个功能之后,又不知道怎么用。今天我们就来简单入门一下这个新功能。

Screen_Shot_2017_08_21_at_21_31_19

能干什么

「数据过滤器」可以算是「字段映射」的升级版。一定有很多人已经用了「字段映射」这个功能用来满足不同组件之间的数据源复用。

映射前:

[{"sk": 1}
]

映射后:

[{"sk": 1,"value": 1}
]

那么问题来了,如果是下面这种数据格式,我该如何接入到组件上呢?

{"data": {"sk": 1}
}

这种情况下,就轮到「数据过滤器」出手了。

怎么用

首先过滤器使用的语法是 Javascript,一种非常简单易上手的语言,可以参考 http://www.w3school.com.cn/js/pro_js_syntax.asp 学习。如果实在学不会,请求教公司里的前端哥哥、前端弟弟、前端姐姐、前端妹妹们。

回到「数据过滤器」的功能上。假设你已经学会了Javascript语言,我们的每个过滤器是一个 function,接口定义如下,框架只传入一个变量 data,过滤器需要返回经过处理后的 data:

function (data) {// do something...return data;
}

你只需要书写函数体即可,比如我现在要把上一段的问题解决,我只需将 data 的数据格式由 Object 转换为 Array ,并且将 sk 字段的数值放到 value 字段上即可:

data.data.value = data.data.sk;
return [data.data];

或者

return [{"value": data.data.sk
}]

上面这两种写法,均可以达到同样的效果。

注意点:(敲黑板)

「数据过滤器」中限制了全局变量的访问,目前仅支持 Date, String, Array, Math, Object, RegExp, Boolean, parseInt, parseFloat, JSON

叠加使用

当我们将过滤器的场景标准化之后,就可以建立多个通用的过滤器,通过多个叠加方式,变成数据该有的样子。

比如我要实现一个随机数效果,并且所有数据放大100倍。

原始数据为

[{"name": "","value": 232425,"y": 0.891111}
]

我先新建一个名称为随机数的过滤器

data[0].value = Math.random(0, 1);
return data;

再新建一个名称为*100的过滤器:

data.forEach(function (val,index) {val.y = val.y * 100;val.value = val.value * 100;
});
return data;

添加完成之后的效果如下图:

Screen_Shot_2017_08_21_at_21_32_02

注意点:(敲黑板)

多个过滤器叠加时,数据流动方向为从左到右,即先经过随机数处理之后的数据再传到*100进行处理。

数据过滤器的功能就先介绍到这里了,下期再见?



推荐阅读
author-avatar
能然然520
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有