diff --git a/packages/engine/src/modules/classes.ts b/packages/engine/src/modules/classes.ts index 11d1e7089..9547eba7a 100644 --- a/packages/engine/src/modules/classes.ts +++ b/packages/engine/src/modules/classes.ts @@ -8,6 +8,7 @@ import { SettingPropEntry, SettingTopEntry, Selection, + Prop, } from '@alilc/lowcode-shell'; import { Node as InnerNode } from '@alilc/lowcode-designer'; @@ -22,4 +23,5 @@ export default { SettingTopEntry, InnerNode, Selection, + Prop, }; diff --git a/packages/engine/src/modules/symbols.ts b/packages/engine/src/modules/symbols.ts index a022b848a..7f72f53e0 100644 --- a/packages/engine/src/modules/symbols.ts +++ b/packages/engine/src/modules/symbols.ts @@ -9,6 +9,7 @@ import { settingPropEntrySymbol, settingTopEntrySymbol, designerCabinSymbol, + propSymbol, } from '@alilc/lowcode-shell'; export default { @@ -22,4 +23,5 @@ export default { settingPropEntrySymbol, settingTopEntrySymbol, designerCabinSymbol, + propSymbol, }; diff --git a/packages/shell/src/api/material.ts b/packages/shell/src/api/material.ts index eca386c5a..cfc84620f 100644 --- a/packages/shell/src/api/material.ts +++ b/packages/shell/src/api/material.ts @@ -170,10 +170,16 @@ export class Material implements IPublicApiMaterial { * 监听 assets 变化的事件 * @param fn */ - onChangeAssets(fn: () => void) { - // 设置 assets,经过 setAssets 赋值 - this[editorSymbol].onGot('assets', fn); - // 增量设置 assets,经过 loadIncrementalAssets 赋值 - this[editorSymbol].eventBus.on('designer.incrementalAssetsReady', fn); + onChangeAssets(fn: () => void): Function { + const dispose = [ + // 设置 assets,经过 setAssets 赋值 + this[editorSymbol].onGot('assets', fn), + // 增量设置 assets,经过 loadIncrementalAssets 赋值 + this[editorSymbol].eventBus.on('designer.incrementalAssetsReady', fn), + ]; + + return () => { + dispose.forEach(d => d && d()); + }; } } diff --git a/packages/types/src/shell/api/material.ts b/packages/types/src/shell/api/material.ts index deec23d52..c8834816b 100644 --- a/packages/types/src/shell/api/material.ts +++ b/packages/types/src/shell/api/material.ts @@ -104,5 +104,5 @@ export interface IPublicApiMaterial { * add callback for assets changed event * @param fn */ - onChangeAssets(fn: () => void): void; + onChangeAssets(fn: () => void): Function; }