适配器 搜索视图 JsonREST同步器 适配器介绍(SearchViewJsonRESTAdapter) - jingjiajie/FrontWork GitHub Wiki
搜索视图-JsonREST同步器-适配器(SearchViewJsonRESTAdapter)是FrontWork提供的一款适配器组件。它提供了将搜索视图和JsonREST同步器组件相连接的能力。从而使用户在搜索视图上设置了搜索条件,点击查询之后,自动将搜索控件查询条件转换为JsonREST同步器可以理解的格式,传入JsonREST同步器并触发JsonREST同步器的数据同步。
下面让我们看一下这款同步器所拥有的属性:
这款适配器拥有3个重要的属性:APIFieldNames, SearchView, Synchronizer。
APIFieldNames: 搜索条件转换成JSON REST API时各字段的名字
SearchView: 绑定的搜索控件
Synchronizer: 绑定的JsonREST同步器控件
其中后两个属性非常容易理解。要注意的是,这款适配器在运行的时候,必须要配置搜索控件和同步器控件,否则不能工作。而APIFieldNames提供了一套默认值,不加设置即可运行。当我们配置好之后,如果用户在搜索控件上按下图条件设置搜索条件,并点击查询
那么搜索控件会在其所绑定的JsonRESTSynchronizer中自动设置两条请求参数:
$conditions:用户在搜索视图上选择的搜索条件
$orders:用户在搜索视图上选择的排序条件
如果我们的pull API设为了
{url:"http://localhost/person/{{conditions:$conditions,orders:$orders}}"}
那么我们会得到如下的URL:
http://localhost/person/{"conditions":[{"key":"name","relation":"EQUAL","values":["Peter"]}],orders:[{"key":"name","order":"ASC"}]}
可以看到,$conditions的值是一个Json数组:[{"key":"name","relation":"EQUAL","values":["Peter"]}],每一项是用户的一个搜索条件。由于当前版本的搜索控件只提供了一个搜索条件,所以$conditions数组只有一项。同理,$orders是排序条件数组。
这里也就很容易理解APIFieldNames了,其中包含ConditionParamNames和OrderParamNames。如果我们修改这些设置,会更改$conditions或$orders数组中每一项的键的名字。