Не нашёл способ передать собственный идентификатор в компонент popup группы dropdown из bem-components.
Имеется в виду установка того идентификатора, который используется для связи popup и dropdown_switcher_button.
Как ни пытаюсь, в коде всё равно присутствует ... id="uniq14912161426251"
Максимум, чего удаётся добиться, это <popup ... data-bem='{"popup":{},"dropdown":{"id":"appUserNameDropdown"}}'>
, но id
всё равно uniq...
.
Как???
UPD
Так понял, это xjst'шный generateId()
, безусловно дёргаемый в dropdown
для получения своёства id
, который в свою очередь дёргает this.identify(this.ctx)
, который вроде должен подхватывать свойство this.ctx.uniqueID
(как я пробовал сначала), но на самом деле нет. (Такое ощущение, что до того identify
, что находится в составе bem-core, дело даже не доходит, если это возможно...)
UPD
Ну да, конечно, там (bem-xjst/lib/bemhtml/bundle.js) свой indentify
, вот такой:
exports.identify = function identify(obj, onlyGet) {
if (!obj)
return getUniq();
if (onlyGet || obj[uniqExpando])
return obj[uniqExpando];
var u = getUniq();
obj[uniqExpando] = u;
return u;
};
который вообще никуда не смотрит.
Т.е., выходит, расширять dropdown
(popup
?), чтобы переопределять нужные методы/свойства? Как правильно?
@lilliputten какая финальная задача? что нужно конкретно и как именно (в виде модификатора или прямо в основной код блока) требуется добавить в
dropdown
?В данный момент хочется банального: чтобы при генерации в данном коде не было рандомно генерящихся кусков.
Это шаблон, который редко меняется, но при каждом билде из-за этого кусочка кода он попадает в логи изменного, что немножко нервирует.
(Хотя сейчас задача скорее из области уменьшения вселенской энтропии: в ближ. будущем, вероятно, всё равно заменю этот компонент на свое меню. Но под вопросом и не известно, когда и всё-таки вообще не совсем порядок.)