# 组件交互
组件可以监听用户的操作,如点击、移入等事件,在事件处理函数中调用页面的ActionManager.triggerActions()
触发组件上定义的交互。
# 配置交互
在capabilities.json
中配置supportActions
为true
,设置actionTriggerTypes
为支持的交互触发类型,如["click"]
。配置后用户可以在设计器中操作组件的属性面板,在交互选项卡中添加交互。
TODO 补充截图
# 触发交互
在IVisualComponent.render()
函数中,可以绑定组件支持的事件,并在事件中触发交互。
export class MyVisualComponent implements IVisualComponent {
private visualObject: IVisualObject;
private componentBuilder: IVisualComponentBuilder;
private domBase: HTMLElement;
private clickHandler: (event: MouseEvent) => void;
public render(args: VisualComponentRenderArgs):void {
//... init dom
this.domBase.addEventListener('click', this.clickHandler = this.doClick.bind(this));
}
private doClick(event: MouseEvent): void {
let args: TriggerActionsArgs = {
event: event,
componentBuilder: this.componentBuilder,
visualComponent: this
};
this.visualObject.getActionManager().triggerActions(args);
}
public dispose(): void {
this.domBase.removeEventListener('click', this.clickHandler);
}
}
是否有帮助?
0条评论
评论