Closed vill closed 6 years ago
В документации написано
Шаблон с подпредикатом на * будет приоритетнее, чем шаблон с конкретным именем в подпредикате.
https://github.com/bem/bem-xjst/blob/master/docs/ru/7-runtime.md#Шаблоны-на-любые-сущности
У нас есть бородатый баг про то, как себя ведет block('*')
и block('*').elem('*')
. Первый применится ко всему (и элементам без блоков и пустым объектам). А второй не применится ни к чему кроме пустых объектов. Это исправлено, но не выпущено, так как это мажорные изменения (хоть и исправление бага, но этим багом уже пользуются как есть). Могу добавить в этот PR твой пример в качестве тесткейса.
Про шаблон с подпредикатом на я знаю, в описании я имел ввиду #256 поэтому и написал или class1
или class2
что будет приоритетнее с этим багом я не знаю, а вопрос был почему он вообще выводит class3
если за `block('').elem('').cls()('class1');идет
block('block').elem('').cls()('class2');` а он не применяется?
block('block').elem('*').cls()('class2'); // Если пред. шаблон не применяется почему до этого не доходит очередь?
block('*').elem('*').cls()('class1'); // Если этот шаблон применяется почему тогда на выходе class3?
block('block').elem('elem').cls()('class3');
@vill это баги.
1) Подпредикат block('*').elem('*')
сейчас глючит и сам ни на что не матчится.
2) Подпредикат block('block').elem('*')
считает что ему необходимо найти элемент с именем *
и соответсвенно не применяется (не на что).
Я оба этих случая исправлю и добавлю тесткейсами в https://github.com/bem/bem-xjst/pull/455.
Хорошо, понял.
Всем привет. Почему если в списке шаблонов для элемента есть шаблон с указанием имени сущности
block('*').elem('*')
он или не применяет свой режим или блокирует дальнейший поиск подходящих wildcard шаблонов?Input code or something about issue background
Expected Behavior
в зависимости что будет приоритетнее
block('*').elem('*')
или
block('block').elem('*')
Actual Behavior
Possible Solution
если убрать шаблон для
block('*').elem('*')
работает правильно
Your Environment
[Ссылка на пример](https://bem.github.io/bem-xjst/?version=8.5.2&engine=BEMHTML&template=%0A%0A%0Ablock(%27block%27).elem(%27*%27).cls()(%27class2%27)%3B%0Ablock(%27*%27).elem(%27*%27).cls()(%27class1%27)%3B%0Ablock(%27block%27).elem(%27elem%27).cls()(%27class3%27)%3B&bemjson=(%5B%0A%20%20%20%20%7B%20block%3A%20%27block%27%2C%20elem%3A%20%27elem%27%20%7D%0A%5D)%3B%0A)