Skip to content

插件控制器使用指南 ​

API 预览 ​

SDK 中的控制器 (controllers) 可在 API 文档 的 Modules > UIExtension > controllers 部分找到。其中,定义在 addons 中的 controller 汇总在 Modules > UIExtension > controllers > UIXAddon 部分。

控制器 (controller) 的使用 ​

下面将为您详解:

提示:点击 这里 了解插件中可复用控制器列表。

在模板中使用 controller ​

以 page-editor:AddTextController 为例来说明如何在模板中使用 controller.

在初始化过程中使用 controller ​

javascript
new PDFUI({
    fragments: [{
        // The target element to be manipulated
        target: 'add-text',
        // The type of operation, here is replacement
        action: UIExtension.UIConsts.FRAGMENT_ACTION.REPLACE,
        // Template,here the "@require-modules" directive is used to handle lazy loading   
        template: `<ribbon-button @controller="page-editor:AddTextController" @require-modules="page-editor"></ribbon-button>`,
    }]
});

或者

javascript
new PDFUI({
    fragments: [{
        // The target element to be manipulated
        target: 'add-text',
        // The type of operation, here is replacement
        action: UIExtension.UIConsts.FRAGMENT_ACTION.REPLACE,
        // Template,here the "@async" directive is used to handle lazy loading  
        templage: `<ribbon-button @controller="page-editor:AddTextController" @async></ribbon-button>`,
    }]
});

在初始化之后使用 controller ​

javascript
// After initialization, use the "Component.after" method to add elements after the component
var someComponent = await pdfui.getComponentByName('some-component-name');
someComponent.after(`<ribbon-button @controller="page-editor:AddTextController"></ribbon-button>`);

在配置中使用 controller ​

我们以 AddImageController 为例,说明如何以基于配置的方式使用 controller。

javascript
new PDFUI({
    fragments: [{
        // The target element to be manipulated
        target: 'image-tool',
        config: {
            // Specify the controller
            callback: UIExtension.controllers.AddImageController
        }
    }]
});

在 addons 中使用 controller 的限制 ​

  1. addons 中的 controller 不能以基于配置的方式使用,只能通过模板使用。这是因为 addon 是异步加载的,当进行配置时,addons 中的 controller 尚未加载完成。因此,只能通过模板来使用,模板是在 addon 加载完成之后才会加载。

  2. addons 中的 controller 不能通过 UIExtension.controllers.SomeController 的方式访问。因为 addon 是异步加载的,无法将 addons 中的 controller 暴露在 UIExtension.controllers 上。