bem/bem-core

Не срабатывает автоматическая отписка при удалении блока

belozer opened this issue · 0 comments

CodePen

modules.require([
  'jquery', 'i-bem-dom', 'BEMHTML', 'button'
], ($, bemDom, BEMHTML, Button) => {
  
const html = BEMHTML.apply([
  { block : 'test', js : true },
  { block : 'button', text : 'click me' }
]);
  
const Root = bemDom.declBlock('root');

bemDom.declBlock('test', {
  onSetMod : {
    js : {
      inited : function() {
        console.log('Test inited');
        const btn = this.findParentBlock(Root).findChildBlock(Button);
        this._events(btn).on('click', this._onButtonClick, this);
      }
    }
  },
  
  _onButtonClick : function() {
    console.log('On button click from _events');
  },
  
}, {
  lazyInit : false
});
  
  
bemDom.append($('.root'), html);

setTimeout(() => { 
  bemDom.destruct($('.test')); 
  console.log('Test destructed'); 
}, 500);

});

После destuct блока кликаем на кнопку и получаем в консоль:
On button click from _events

upd
возможно проблема смежная с #1525

upd
Проблему вроде починил. Осталось разобраться в причине и прислать PR