插件控制器使用指南
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 的限制
addons 中的 controller 不能以基于配置的方式使用,只能通过模板使用。这是因为 addon 是异步加载的,当进行配置时,addons 中的 controller 尚未加载完成。因此,只能通过模板来使用,模板是在 addon 加载完成之后才会加载。
addons 中的 controller 不能通过
UIExtension.controllers.SomeController
的方式访问。因为 addon 是异步加载的,无法将 addons 中的 controller 暴露在UIExtension.controllers
上。