Skip to content

Commit 472cbf5

Browse files
committed
docs: synced via GitHub Actions
1 parent 46ee71c commit 472cbf5

File tree

2 files changed

+37
-9
lines changed

2 files changed

+37
-9
lines changed

src/dev-guide/xui/adapter.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,23 +64,21 @@ query{
6464

6565
`@action:demo.myAction`表示调用demo.lib.js库中的myAction方法。作为api的url来触发时,传给函数的参数为[FetcherRequest](https://gitee.com/canonical-entropy/nop-chaos/blob/master/packages/nop-core/src/core/types.ts)类型
6666

67-
### `@fn`
68-
69-
直接定义的匿名函数
70-
7167
## 自定义事件动作
7268

7369
前台引入了一个特殊的page-action类型的动作,它的参数中必须包含一个特殊的参数`@action`用于指定触发的动作名称。
7470

71+
对应函数接口为`function(args,page,{action,renderer,mergeData})`
72+
7573
```json5
7674
{
7775
"onEvent": {
7876
"click": { // 监听点击事件
7977
"actions": [ // 执行的动作列表
8078
{
8179
"actionType": "page-action", // 执行自定义action
82-
"args": { //
83-
"@action": "demo.myAction",
80+
"actionName": "@action:demo.myAction",
81+
"args": { //
8482
"msg": "派发点击事件"
8583
}
8684
}

src/dev-guide/xui/amis.md

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,18 @@ XML格式将按照前面介绍的转换规则转换为对应的json. 在`gen-con
131131
</gen-control>
132132
```
133133

134+
**注意**: gen-control是代码生成段,其中的表达式是在后台执行的,因此如果要输出AMIS的前端表达式,必须要转义。比如
135+
`${'$}{id}`在代码生成阶段会被执行,输出的结果是`${id}`
136+
137+
```xml
138+
139+
<gen-control>
140+
<dialog>
141+
<api url="sss?id=${'$'}{id}" />
142+
</dialog>
143+
</gen-control>
144+
```
145+
134146
## 1.2 可逆计算分解
135147

136148
Nop平台基于可逆计算理论针对JSON和XML实现了通用的分解合并机制,可以按照通用的规则将很大的JSON文件分解为多个小型文件,相当于是为AMIS补充了某种模块组织语法。最常用的是两个语法,`x:extends`用于表示继承外部的某个文件,`x:gen-extends`表示动态生成可以被继承的JSON对象。
@@ -167,7 +179,7 @@ AMIS的DSL本身只支持编写嵌入在页面中的JS片段代码,并不直
167179

168180
> 这一机制是通用的,可以用于集成其他的低代码引擎
169181

170-
```
182+
```yaml
171183
type: page
172184
xui:import: /nop/auth/pages/DemoPage/demo.lib.js
173185
body:
@@ -183,6 +195,26 @@ body:
183195
`url: "@action:demo.testAction"`这一语法是我们在AMIS的环境抽象基础上所提供的一个`action`触发机制。它通过拦截AMIS的`fetcher`调用,识别`@action:`前缀,然后映射到已加载的JS函数上,调用时传入`data`指定的参数。
184196

185197
脚本库的代码存放在`demo.lib.xjs`中(注意后缀名是xjs而不是js,我们会通过graalvm-js脚本引擎调用rollup打包工具将xjs转换为js文件,并打包成SystemJs模块结构)。
198+
也可以直接手写`demo.lib.js`,js库必须采用SystemJs格式,可以用AI去转换。
199+
200+
在Action编排中也可以使用上述语法,例如
201+
202+
```yaml
203+
- type: action
204+
label: Action Flow
205+
level: success
206+
onEvent:
207+
click:
208+
actions:
209+
- actionType: page-action
210+
actionName: '@action:demo.handlePageAction'
211+
args:
212+
a: '${myVar}'
213+
```
214+
215+
Nop平台内置了一个测试页面: `http://localhost:8080/#/amis/nop/auth/pages/DemoPage/demo.page.yaml`
216+
217+
### XJS
186218

187219
```javascript
188220
/* @x:gen-extends:
@@ -198,8 +230,6 @@ import {ajaxRequest} from '@nop/utils'
198230

199231
export function testAction(options, page){
200232
page.env.alert("xx");
201-
ajaxFetch(options)
202-
ajaxRequest(options)
203233
myAction(options,page)
204234
myAction2(options,page)
205235

0 commit comments

Comments
 (0)