Browse Source

Clean properly viewLayer from the component. Closes #6001

Fix the bug where the layer manager breaks when alternating between pages.
pull/6021/head
Artur Arseniev 2 years ago
parent
commit
54ee911b49
  1. 2
      src/navigator/view/ItemView.ts
  2. 2
      src/pages/index.ts

2
src/navigator/view/ItemView.ts

@ -159,7 +159,6 @@ export default class ItemView extends View {
].forEach(item => this.listenTo(model, item[0], item[1])); ].forEach(item => this.listenTo(model, item[0], item[1]));
this.$el.data('model', model); this.$el.data('model', model);
this.$el.data('collection', components); this.$el.data('collection', components);
// @ts-ignore
model.viewLayer = this; model.viewLayer = this;
onInit.bind(this)({ onInit.bind(this)({
component: model, component: model,
@ -396,6 +395,7 @@ export default class ItemView extends View {
remove(...args: []) { remove(...args: []) {
View.prototype.remove.apply(this, args); View.prototype.remove.apply(this, args);
delete this.model.viewLayer;
this.__clearItems(); this.__clearItems();
return this; return this;
} }

2
src/pages/index.ts

@ -101,7 +101,7 @@ export default class PageManager extends ItemManagerModule<PageManagerConfig, Pa
const { em, events } = this; const { em, events } = this;
const lm = em.Layers; const lm = em.Layers;
const mainComp = page.getMainComponent(); const mainComp = page.getMainComponent();
lm && mainComp && lm.setRoot(mainComp as any); lm && mainComp && lm.setRoot(mainComp);
em.trigger(events.select, page, m.previous('selected')); em.trigger(events.select, page, m.previous('selected'));
this.__onChange(chnSel, page, opts); this.__onChange(chnSel, page, opts);
} }

Loading…
Cancel
Save