Browse Source

Fix trait update with defined classes in attributes.

pull/4772/head
Artur Arseniev 4 years ago
parent
commit
9f1dfe12e8
  1. 6
      src/dom_components/model/Component.js
  2. 4
      src/trait_manager/model/Trait.js

6
src/dom_components/model/Component.js

@ -481,7 +481,7 @@ export default class Component extends StyleableModel {
addAttributes(attrs, opts = {}) {
return this.setAttributes(
{
...this.getAttributes({ noClass: 1 }),
...this.getAttributes({ noClass: true }),
...attrs,
},
opts
@ -568,7 +568,9 @@ export default class Component extends StyleableModel {
const id = this.getId();
// Add classes
if (!opts.noClass) {
if (opts.noClass) {
delete attributes.class;
} else {
this.get('classes').forEach(cls => classes.push(isString(cls) ? cls : cls.get('name')));
classes.length && (attributes.class = classes.join(' '));
}

4
src/trait_manager/model/Trait.js

@ -133,9 +133,7 @@ export default class Trait extends Model {
if (this.get('changeProp')) {
target.set(name, valueToSet, opts);
} else {
const attrs = { ...target.get('attributes') };
attrs[name] = valueToSet;
target.set('attributes', attrs, opts);
target.addAttributes({ [name]: valueToSet }, opts);
}
}

Loading…
Cancel
Save