本文整理匯總了TypeScript中@grafana/ui.PanelPlugin.onPanelTypeChanged方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript PanelPlugin.onPanelTypeChanged方法的具體用法?TypeScript PanelPlugin.onPanelTypeChanged怎麽用?TypeScript PanelPlugin.onPanelTypeChanged使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類@grafana/ui.PanelPlugin
的用法示例。
在下文中一共展示了PanelPlugin.onPanelTypeChanged方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: changePlugin
changePlugin(newPlugin: PanelPlugin) {
const pluginId = newPlugin.meta.id;
const oldOptions: any = this.getOptionsToRemember();
const oldPluginId = this.type;
// for angular panels we must remove all events and let angular panels do some cleanup
if (this.plugin.angularPanelCtrl) {
this.destroy();
}
// remove panel type specific options
for (const key of _.keys(this)) {
if (mustKeepProps[key]) {
continue;
}
delete (this as any)[key];
}
this.cachedPluginOptions[oldPluginId] = oldOptions;
this.restorePanelOptions(pluginId);
// switch
this.type = pluginId;
this.plugin = newPlugin;
// Let panel plugins inspect options from previous panel and keep any that it can use
if (newPlugin.onPanelTypeChanged) {
this.options = this.options || {};
const old = oldOptions && oldOptions.options ? oldOptions.options : {};
Object.assign(this.options, newPlugin.onPanelTypeChanged(this.options, oldPluginId, old));
}
if (newPlugin.onPanelMigration) {
this.pluginVersion = getPluginVersion(newPlugin);
}
}