数据过滤器
OneNET View 2.0 支持用户自定义过滤器,用户可以自行写入javascript
代码,借助过滤器实现数据结构转换、筛选和一些简单的计算。
当前暂不支持es6及更高版本的ECMAScript语法
当出现以下情况,您可能需要使用数据过滤器:
数据源的值与组件中格式不相同;
一个组件需要同时使用多个数据源;
点击数据过滤器,勾选复选框,启用数据过滤器功能。在代码编辑区填写您的代码。过滤器在使用之前会先进行代码安全监测,无法通过安全监测的过滤器将不能使用。
数据过滤器类型
OneNET View 2.0 包含两种类型的过滤器:
私有过滤器
:每个组件各自拥有一个不影响其他组件的过滤器,且这个过滤器只能这个组件自己使用。
全局过滤器
:可以设计一些每个组件都可选择是否使用的过滤器。这些过滤器一旦被修改,将影响到所有使用到它的组件。
过滤器传参
每个 OneNET View 2.0 过滤器都是一个javascript
函数,我们预先定义了这个过滤器函数的两个参数data
和rootData
:
data
:当前组件选中的数据源数据
rootData
:包含所有数据源数据的根对象
rootData
是 OneNET View 2.0
的数据源列表,它是一个以 数据源Id
-数据值列表
为键值对 的对象,包含了该项目中所有的
数据源,其中OneNET
、OneNET1
、staticDemo
是数据源 Id
,紧随其后的是该数据源的当前数据。
1 | { |
以这个 OneNET View 2.0数据源列表
为例。假设通过数据源选择下拉框选中的是OneNET
,则 参数data
的值是
1 | [ |
过滤器示例
一个组件里同时采用两个以上数据源
仍以上文提到的数据源为例,假设一个组件需要数据源OneNET
和数据源staticDemo
的数据,则我们将数据源选择下拉框选中OneNET
,然后在过滤器中这么写:
1 | // 代码中 data 取到的是我们数据源下拉框选中的OneNET数据源 |