-
Notifications
You must be signed in to change notification settings - Fork 96
Closed
Description
https://github.com/bem/bem-core/blob/v4/common.blocks/i-bem-dom/i-bem-dom.js#L156
if(!entityCls.lazyInit || ignoreLazyInit || params.lazyInit === false) {
ignoreLazyInit && domElem.addClass(BEM_CLASS_NAME); // add css class for preventing memory leaks in further destructing
entity = new entityCls(uniqIdToDomElems[uniqId], params, !!ignoreLazyInit);
delete uniqIdToDomElems[uniqId];
callback && callback.apply(entity, slice.call(arguments, 4));
return entity;
}Невозможно сделать lazyInit : true на определённом блоке из html.
Как вариант, можно переписать условие так
if(ignoreLazyInit || params.lazyInit === false || !entityCls.lazyInit && !params.lazyInit)
…
}В добавок через lazyInit в модификаторе можно сломать поведение базового блока.
const Block = bemDom.declBlock('block', null, { lazyInit : false });
const Mod = Block.declMod({ modName : 'mod' }, null, { lazyInit : true });
console.log(Block.lazyInit, Mod.lazyInit); → true trueПредлагаю запретить использование lazyInit в declMod.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels