From ea1dec836699609ff332903bfcc2e68e81015ad5 Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Mon, 2 Sep 2019 23:18:49 +0200 Subject: [PATCH] Render correctly wrapper component in renderBody --- src/canvas/view/CanvasView.js | 10 +++++++--- src/canvas/view/FrameView.js | 2 +- src/dom_components/view/ComponentsView.js | 6 ++++-- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/canvas/view/CanvasView.js b/src/canvas/view/CanvasView.js index 519df0802..564030474 100644 --- a/src/canvas/view/CanvasView.js +++ b/src/canvas/view/CanvasView.js @@ -476,13 +476,17 @@ export default Backbone.View.extend({ render() { const { el, $el, ppfx, model, config } = this; - this.wrapper = model.get('wrapper'); + const wrapper = model.get('wrapper'); $el.html(this.template()); const $frames = $el.find('[data-frames]'); this.framesArea = $frames.get(0); + this.wrapper = wrapper; - if (this.wrapper && typeof this.wrapper.render == 'function') { - model.get('frame').set('wrapper', this.wrapper); + if (wrapper && typeof wrapper.render == 'function') { + model.get('frame').set({ + wrapper, + root: wrapper.getWrapper() + }); $frames.append(this.frame.render().el); var frame = this.frame; if (this.config.scripts.length === 0) { diff --git a/src/canvas/view/FrameView.js b/src/canvas/view/FrameView.js index 4b1af0be1..344b13b1a 100644 --- a/src/canvas/view/FrameView.js +++ b/src/canvas/view/FrameView.js @@ -235,7 +235,7 @@ export default Backbone.View.extend({ ${conf.protectedCss || ''} ` ); - append(body, new ComponentView({ model: root }).render().el); + append(body, new ComponentView({ model: root, config }).render().el); append(body, new CssRulesView({ collection: styles, config }).render().el); append(body, this.getJsContainer()); // em.trigger('loaded'); // I need to manage only the first one maybe diff --git a/src/dom_components/view/ComponentsView.js b/src/dom_components/view/ComponentsView.js index 128abcd13..d57b03386 100644 --- a/src/dom_components/view/ComponentsView.js +++ b/src/dom_components/view/ComponentsView.js @@ -5,6 +5,7 @@ export default Backbone.View.extend({ initialize(o) { this.opts = o || {}; this.config = o.config || {}; + this.em = this.config.em; const coll = this.collection; this.listenTo(coll, 'add', this.addTo); this.listenTo(coll, 'reset', this.resetChildren); @@ -80,9 +81,10 @@ export default Backbone.View.extend({ * */ addToCollection(model, fragmentEl, index) { if (!this.compView) this.compView = require('./ComponentView').default; - const { config, opts } = this; + const { config, opts, em } = this; const fragment = fragmentEl || null; - const dt = opts.componentTypes; + const dt = + opts.componentTypes || (em && em.get('DomComponents').getTypes()); const type = model.get('type'); let viewObject = this.compView;