Browse Source

Add `component:update:components` event, allows listen to inner components changes. Closes #1409

pull/1446/head
Artur Arseniev 8 years ago
parent
commit
f09fee106d
  1. 10
      src/dom_components/model/Component.js

10
src/dom_components/model/Component.js

@ -162,9 +162,9 @@ const Component = Backbone.Model.extend(Styleable).extend(
this.set('status', ''); this.set('status', '');
// Register global updates for collection properties // Register global updates for collection properties
['classes', 'traits'].forEach(name => ['classes', 'traits', 'components'].forEach(name =>
this.listenTo(this.get(name), 'add remove change', () => this.listenTo(this.get(name), 'add remove change', (...args) =>
this.emitUpdate(name) this.emitUpdate(name, ...args)
) )
); );
this.init(); this.init();
@ -877,10 +877,10 @@ const Component = Backbone.Model.extend(Styleable).extend(
return scr; return scr;
}, },
emitUpdate(property) { emitUpdate(property, ...args) {
const em = this.em; const em = this.em;
const event = 'component:update' + (property ? `:${property}` : ''); const event = 'component:update' + (property ? `:${property}` : '');
em && em.trigger(event, this); em && em.trigger(event, this, ...args);
}, },
/** /**

Loading…
Cancel
Save