From 3a7506b0c1300f7ebe8ea06e2c3ddcbe62b152c0 Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Sun, 29 Nov 2020 22:28:19 +0100 Subject: [PATCH] Init symbols on load --- src/dom_components/model/Component.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/dom_components/model/Component.js b/src/dom_components/model/Component.js index 930ac2377..49c5f737b 100644 --- a/src/dom_components/model/Component.js +++ b/src/dom_components/model/Component.js @@ -192,6 +192,7 @@ const Component = Backbone.Model.extend(Styleable).extend( this.listenTo(this, 'change:attributes:id', this._idUpdated); this.set('status', ''); this.views = []; + this.__isSymbol() && this.__initSymb(); // Register global updates for collection properties ['classes', 'traits', 'components'].forEach(name => { @@ -574,6 +575,16 @@ const Component = Backbone.Model.extend(Styleable).extend( return classStr ? classStr.split(' ') : []; }, + __initSymb() { + if (this.__symbReady) return; + this.on('change', this.__upSymbProps); + this.__symbReady = 1; + }, + + __isSymbol() { + return isArray(this.get('__symbol')); + }, + __getSymbToUp(opts = {}) { const symbol = this.get('__symbol'); const isMain = Array.isArray(symbol); @@ -993,7 +1004,7 @@ const Component = Backbone.Model.extend(Styleable).extend( const symbols = this.get('__symbol') || []; symbols.push(cloned); this.set('__symbol', symbols); - this.on('change', this.__upSymbProps); + this.__initSymb(); cloned.set('__symbol', this); } else { cloned.set('__symbol', 0);