Я пытаюсь создать пользовательскую панель инструментов, описанную этой документацией . Я хочу иметь возможность общаться между компонентом, который регистрирует ToolPanelComponent, и экземпляром компонента панели инструментов. Например, передать данные компоненту и прослушать события из компонента.
Я посмотрел в Интернете, но не могу найти похожий вопрос, и в документации, похоже, нет примера. Общий сервис будет работать, но мне интересно, есть ли более прямой метод.
У родительского компонента будет что-то похожее на этот код (из документации) для указания пользовательской панели инструментов на боковой панели.
this.sideBar = {
toolPanels: [
{
id: "customStats",
labelDefault: "Custom Stats",
labelKey: "customStats",
iconKey: "custom-stats",
toolPanel: "customStatsToolPanel"
}
],
this.frameworkComponents = { customStatsToolPanel: CustomStatsToolPanel };
Но интерфейс для компонента
interface IToolPanel {
// The init(params) method is called on the tool panel once upon component initialisation.
init(params: IToolPanelParams): void;
// Returns the GUI for this Tool Panel and can be a string of html or a DOM element.
getGui(): any;
// Can be left blank if no custom refresh logic is required.
refresh(): void;
}
И IToolPanelParams имеет ссылку только на GridApi.
Было бы неплохо иметь возможность использовать функции angular @Input () и EventEmitter для связи между двумя компонентами.