Browse Source

Make the `textnode` component and `component.clear` method more compliant to the editor

pull/1918/head
Artur Arseniev 8 years ago
parent
commit
c2d008f101
  1. 4
      src/dom_components/index.js
  2. 9
      src/dom_components/view/ComponentTextNodeView.js
  3. 27
      src/dom_components/view/ComponentsView.js

4
src/dom_components/index.js

@ -498,7 +498,9 @@ module.exports = () => {
* @return {this}
*/
clear() {
this.getComponents().reset();
this.getComponents()
.map(i => i)
.forEach(i => i.remove());
return this;
},

9
src/dom_components/view/ComponentTextNodeView.js

@ -1 +1,8 @@
module.exports = require('backbone').View.extend({});
module.exports = require('backbone').View.extend({
initialize() {
this.model.view = this;
},
_createElement() {
return document.createTextNode(this.model.get('content'));
}
});

27
src/dom_components/view/ComponentsView.js

@ -75,30 +75,25 @@ module.exports = Backbone.View.extend({
* */
addToCollection(model, fragmentEl, index) {
if (!this.compView) this.compView = require('./ComponentView');
var fragment = fragmentEl || null,
viewObject = this.compView;
var dt = this.opts.componentTypes;
var type = model.get('type');
for (var it = 0; it < dt.length; it++) {
var dtId = dt[it].id;
if (dtId == type) {
const { config, opts } = this;
const fragment = fragmentEl || null;
const dt = opts.componentTypes;
const type = model.get('type');
let viewObject = this.compView;
for (let it = 0; it < dt.length; it++) {
if (dt[it].id == type) {
viewObject = dt[it].view;
break;
}
}
//viewObject = dt[type] ? dt[type].view : dt.default.view;
var view = new viewObject({
const view = new viewObject({
model,
config: this.config,
config,
componentTypes: dt
});
var rendered = view.render().el;
if (view.model.get('type') == 'textnode')
rendered = document.createTextNode(view.model.get('content'));
let rendered = view.render().el;
if (fragment) {
fragment.appendChild(rendered);

Loading…
Cancel
Save