平台组件
Amis原生组件
几乎所有的amis原生组件都适用于Steedos微页面,请参阅 Amis 组件。
Steedos组件
我们为 amis 扩展了对象相关的组件用于快速实现Steedos各种界面能力。
@data.change事件
在amis广播事件可以自定义派发的事件名称eventName
,其他渲染器可以监听自定义事件并配置响应动作。了解更多广播事件。
Steedos基于amis广播事件,实现了基于对象的@data.change
事件,只需要在组件中按规范监听相关对象的@data.change
事件,可以很方便的实现刷新列表视图和表单数据功能。
名称规范
事件名称规范:@data.changed.对象的API名称
,表示触发某个对象的@data.change
事件。
触发
要触发对象的@data.change
事件,eventName
按上述名称规范,并配置actionType: 'broadcast'
。
以下示例演示了点击按钮时触发一个名为instance_tasks
的对象的@data.change
事件。actions.data
中的数据会传递给目标事件,可通过event.data.xxx
直接获取。
{
"type": "button",
"label": "广播一下",
"onEvent": {
"click": {
"actions": [
{
"actionType": "broadcast",
"args": {
"eventName": "@data.changed.instance_tasks"
},
"data":{
"objectName": "instance_tasks"
}
}
]
}
}
}
监听
要监听@data.change
事件,事件名按上述名称规范即可。
以下示例演示了一个监听名为instance_tasks
的对象的@data.change
事件。当事件触发时会执行相关动作,传递的数据通过event.data.xxx
获取。
"onEvent": {
"@data.changed.instance_tasks": {
"actions": [
{
"actionType": "toast",
"args": {
"msgType": "info",
"msg": "传递的数据:${event.data.objectName}",
"position": "top-center"
}
}
]
}
}
应用
Steedos很多内置组件都监听了对象的@data.change
事件,基于amis的广播事件特性可以很方便的调用这些组件的功能和行为,比如列表视图组件的刷新功能。