使用 Hook

通过修改默认值描述,指定表格预制API查询条件;

通过设置Hooks处理器,实现对表格查询的输入和输出数据预处理。

Hooks 一览表

Hook说明输入输出规范
before:find在 Find 处理器之前调用Find 接口传入数据输出结果作为 Find 关联处理器输入参数
after:find在 Find 处理器之后调用Find 接口关联处理器执行结果自定义(输出结果作为 Find 处理器的最终输出)
before:search在 Search 处理器之前调用Search 接口传入数据输出结果作为 Search 关联处理器输入参数
after:search在 Search 处理器之后调用Search 接口关联处理器执行结果自定义 (输出结果作为 Search 处理器的最终输出)
before:save在 Save 处理器之前调用Save 接口传入数据输出结果作为 Save 关联处理器输入参数
after:save在 Save 处理器之后调用Save 接口关联处理器执行结果自定义 (输出结果作为 Save 接口的最终输出)

使用 Hooks

可以使用 Hooks 处理表格 API 输入输出数据。Hook 分为 beforeafter 两类, before hook,在 API 调用前运行,可以用来处理传入参数,after hook,在 API 调用后运行,可用来处理查询结果。

在描述数据表格时,在 action 字段,声明 Hook 关联的处理器,例如:

"action": {
"bind": { "model": "product" },
"save": {
"guard": "scripts.guard.Validate"
},
"before:find": "flows.hooks.before_find",
"after:find": "flows.hooks.after_find",
"before:search": "flows.hooks.before_search",
"after:search": "flows.hooks.after_search",
"before:save": "flows.hooks.before_save",
"after:save": "flows.hooks.after_save",
"search": {
"default": [
{
"orders": [{ "column": "id", "options": "desc" }]
},
1,
10
]
}
},

before hook

使用 Before Hook 锁定搜索条件,过滤掉 search API 越界输入。

修改 product.tab.yaobefore:search hook 指定为 scripts.test.BefofreSearch 处理器。

function BefofreSearch(data, page, pagesize) {
console.log([data, page, pagesize]);
}

after hook

使用 After Hook 处理数据。

修改 product.tab.yaoafter:search hook 指定为 scripts.test.AfterSearch 处理器,把name字段改为 111

function AfterSearch(data) {
var temp = data.data;
for (var i in temp) {
temp[i]["name"] = "111";
}
data.data = temp;
console.log(data);
return data;
}

使用 Hook

通过修改默认值描述,指定表格预制API查询条件;

通过设置Hooks处理器,实现对表格查询的输入和输出数据预处理。

Hooks 一览表

Hook说明输入输出规范
before:find在 Find 处理器之前调用Find 接口传入数据输出结果作为 Find 关联处理器输入参数
after:find在 Find 处理器之后调用Find 接口关联处理器执行结果自定义(输出结果作为 Find 处理器的最终输出)
before:search在 Search 处理器之前调用Search 接口传入数据输出结果作为 Search 关联处理器输入参数
after:search在 Search 处理器之后调用Search 接口关联处理器执行结果自定义 (输出结果作为 Search 处理器的最终输出)
before:save在 Save 处理器之前调用Save 接口传入数据输出结果作为 Save 关联处理器输入参数
after:save在 Save 处理器之后调用Save 接口关联处理器执行结果自定义 (输出结果作为 Save 接口的最终输出)

使用 Hooks

可以使用 Hooks 处理表格 API 输入输出数据。Hook 分为 beforeafter 两类, before hook,在 API 调用前运行,可以用来处理传入参数,after hook,在 API 调用后运行,可用来处理查询结果。

在描述数据表格时,在 action 字段,声明 Hook 关联的处理器,例如:

"action": {
"bind": { "model": "product" },
"save": {
"guard": "scripts.guard.Validate"
},
"before:find": "flows.hooks.before_find",
"after:find": "flows.hooks.after_find",
"before:search": "flows.hooks.before_search",
"after:search": "flows.hooks.after_search",
"before:save": "flows.hooks.before_save",
"after:save": "flows.hooks.after_save",
"search": {
"default": [
{
"orders": [{ "column": "id", "options": "desc" }]
},
1,
10
]
}
},

before hook

使用 Before Hook 锁定搜索条件,过滤掉 search API 越界输入。

修改 product.tab.yaobefore:search hook 指定为 scripts.test.BefofreSearch 处理器。

function BefofreSearch(data, page, pagesize) {
console.log([data, page, pagesize]);
}

after hook

使用 After Hook 处理数据。

修改 product.tab.yaoafter:search hook 指定为 scripts.test.AfterSearch 处理器,把name字段改为 111

function AfterSearch(data) {
var temp = data.data;
for (var i in temp) {
temp[i]["name"] = "111";
}
data.data = temp;
console.log(data);
return data;
}