Кажется, я упустила что-то из документации по bemhtml. Хочу ответы на следующие простые вопросы:
1) как в bemhtml связать input-radio с label, когда radio не находится внутри label?
2) как определить в bemhtml input-radio и label, когда radio внутри label?
в обоих случаях radio одиночный.
Примеры видела, пост про radio (http://ru.bem.info/libs/bem-components/v2/desktop/radio/docs/) читала.
1) если у input и label нет ничего общего, то только по
id
/for
2) не уверен, что правильно понял, но если input и label возникают из одного БЭМ-блока, то можно использоватьthis.generateId()
для простановки правильныхid
/for
(см. https://github.com/bem/bemhtml/blob/master/common.docs/reference/reference.ru.md#Связывание-html-элементов-по-id)1) то есть иных способов связать нет?
2) тут скорее вопрос, как определить этот БЭМ-блок. Не нужно связывать их между собой по id/for.
1) если правильно понял вопрос, то нет, кроме того, чтобы вложить инпут внутрь лейбла и связи по
id
/for
, других вариантов нет. а можно еще подробнее раскрыть вопрос? скорее всего мы под «определить блок в bemhtml» понимаем что-то разное.если речь о том, как его описать в BEMJSON, то можно как-то так:
тогда в BEMHTML:
спасибо)
в итоге я нашла немного другое решение.
Если подробнее, задача была такая:
В BEMJSON-декларации страницы был описан список, который содержит какие-то данные. Внутри каждого элемента этого списка должен быть
radio
, связанный с соответствующимlabel
. В BEMHTML-шаблоне блока пишем код, который превратит данные в элементы блока. В итоге получилось так:@enter-key выглядит нормально
пара нюансов по стилю:
можно просто
elem('item').tag()('li'), elem('name').tag()('span')
content: [{ ... }]
можно простоcontent: { ... }
(без лишнего массива из одного элемента)@enter-key Если я правильно понял, можно посмотреть на блок из компонентов для гругппировки
radio
https://github.com/bem/bem-components/tree/v2/common.blocks/radio-group@veged Спасибо за совет. Поправила
@voichev Увы ( при попытке сделать как в примере
radio
не "развернулся".В .bemhtml:
В html
radio
разворачивается вspan
сdata-bem="{"radio":{"id":"radio-quest"}}
.Рабочий вариант у меня уже есть (указан выше). Любопытно, что здесь не так.