# 组件交互

组件可以监听用户的操作,如点击、移入等事件,在事件处理函数中调用页面的ActionManager.triggerActions()触发组件上定义的交互。

# 配置交互

capabilities.json中配置supportActionstrue,设置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条评论
评论