服务器端事件

为了进一步减少 Javascript 代码的编写,root.js 为组件提供了 服务器端事件,服务器端事件支持向后端发送请求,例如当文本框失去焦点时、当点击按钮时。服务器端事件是前端组件与后端交互的核心属性。

请求接口

数据接口是最经常的与后端交互的方式。

上例中,要请求的接口是/api/code/check?code={value}%;井号#后面的/data表示当接口请求完成后返回结果中路径/data里的数据,支持标准 JsonPath 格式;->后面的not-zero为判断接口是否请求结果是否符合预期的条件,意义为返回结果不为0。所有判断是否符合预期的条件和逻辑为:

当符合预期时表示执行成功,提示success-text,当不符合预期时表示执行失败,提示failure-text。如果没有设置判断条件,并且没有设置success-textfailure-text属性,那么结果会永远识别为true。判断结果还有另一个目的,就是触发客户端事件监听,下文中单独介绍。

执行 PQL

PQL 是 Cogo 支持的后端交互方式,但仅支持一条 PQL 语句。

与接口交互方式不同,PQL 语句返回执行后的结果,不支持在前端对结果进行进一步解析和判断结果是否符合预期,所有操作都可以在 PQL 中通过 Sharp 表达式完成。上例中``FIRST CELL用于提取 SELECT 语句返回的数据表中第一个单元格的内容,IF GREATER THAN ZERO当判断结果大于0时返回false。依然会将最终结果自动转成布尔值,如果最终结果可识别为true,则提示success-text,如果可识别为false,提示failure-text。如果没有设置success-textfailure-text属性,则结果总是会识别为true`。

请求状态

每次服务器端请求都会有 3 种状态。

每种状态都有对应状态的提醒文字和扩展事件,提醒文字属性上面已经提到,扩展事件的说明见“事件监听”。

提醒文字

当判断结果是否符合预期时,如果设置了提醒文字属性success-textfailure-text,则在成功或失败时提醒相应的文字,提醒文字显示位置和方式与标签或组件的设置有关,当不设置这些属性时,则不会进行提醒。当请求接口发生错误时,提醒exception-text,如果不设置,则提醒出错信息。这几个属性均支持 Express 字符串,如:

提醒文字的显示方式

一般支持服务器端事件的组件都支持以下几种方式显示提醒文字。

事件监听

与服务器请求的状态对应,root.js 为所有服务器端事件提供了 3 种扩展事件和 1 个额外的事件。事件名格式为服务器端事件名+状态,假如服务器端事件名为onclick+

与客户端事件一样,这些事件也可以被其他标签引用,详见精简事件和表达式。例如:

root.js 建议在标签属性定义事件和事件监听。框架中还有其他的事件格式,请参阅精简事件表达式及其最后一节的内容。


参考链接


微信公众号
码农老吴  |  星源工作室  |  开发月志  |  问题反馈
联系我们:wu@qross.io     手机/微信:18618171102
京 ICP 备 20027445 号
$(h1)!