Skip to content

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

@belozer

Description

@belozer

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions