Browse Source

Trigger `component:mount` once the DOM is appended to the parent. Closes #4136

pull/4141/head
Artur Arseniev 5 years ago
parent
commit
32547184b8
  1. 5
      src/dom_components/view/ComponentView.js
  2. 11
      src/dom_components/view/ComponentsView.js

5
src/dom_components/view/ComponentView.js

@ -503,11 +503,8 @@ export default Backbone.View.extend({
},
postRender() {
const { em, model, modelOpt } = this;
if (!modelOpt.temporary) {
if (!this.modelOpt.temporary) {
this.onRender(this._clbObj());
em && em.trigger('component:mount', model);
}
},

11
src/dom_components/view/ComponentsView.js

@ -61,8 +61,7 @@ export default Backbone.View.extend({
const fragment = fragmentEl || null;
const { frameView = {} } = config;
const sameFrameView = frameView.model && model.getView(frameView.model);
const dt =
opts.componentTypes || (em && em.get('DomComponents').getTypes());
const dt = opts.componentTypes || (em && em.get('DomComponents').getTypes());
const type = model.get('type') || 'default';
let viewObject = this.compView;
@ -77,7 +76,7 @@ export default Backbone.View.extend({
new viewObject({
model,
config,
componentTypes: dt
componentTypes: dt,
});
let rendered;
@ -115,6 +114,10 @@ export default Backbone.View.extend({
}
}
if (!model.opt.temporary) {
em?.trigger('component:mount', model);
}
return rendered;
},
@ -132,5 +135,5 @@ export default Backbone.View.extend({
el.innerHTML = '';
el.appendChild(frag);
return this;
}
},
});

Loading…
Cancel
Save