Browse Source

Refactor setAttributes

pull/2295/head
Artur Arseniev 7 years ago
parent
commit
698e5f1db7
  1. 27
      src/dom_components/model/Component.js

27
src/dom_components/model/Component.js

@ -327,6 +327,18 @@ const Component = Backbone.Model.extend(Styleable).extend(
* @private * @private
*/ */
attrUpdated(m, v, opts = {}) { attrUpdated(m, v, opts = {}) {
const attrs = this.get('attributes');
// Handle classes
const classes = attrs.class;
classes && this.setClass(classes);
delete attrs.class;
// Handle style
const style = attrs.style;
style && this.setStyle(style);
delete attrs.style;
const attrPrev = { ...this.previous('attributes') }; const attrPrev = { ...this.previous('attributes') };
const diff = shallowDiff(attrPrev, this.get('attributes')); const diff = shallowDiff(attrPrev, this.get('attributes'));
keys(diff).forEach(pr => keys(diff).forEach(pr =>
@ -342,20 +354,7 @@ const Component = Backbone.Model.extend(Styleable).extend(
* component.setAttributes({ id: 'test', 'data-key': 'value' }); * component.setAttributes({ id: 'test', 'data-key': 'value' });
*/ */
setAttributes(attrs, opts = {}) { setAttributes(attrs, opts = {}) {
attrs = { ...attrs }; this.set('attributes', { ...attrs }, opts);
// Handle classes
const classes = attrs.class;
classes && this.setClass(classes);
delete attrs.class;
// Handle style
const style = attrs.style;
style && this.setStyle(style);
delete attrs.style;
this.set('attributes', attrs, opts);
return this; return this;
}, },

Loading…
Cancel
Save