Хочу в шаблоне выбрать (по имени) вложенные в блок элементы и... ч.-ндь к ним применить.
Вижу, что в match
у меня this.elem
всегда undefined
, а elemMatch
(про который где-то что-то попадалось) почему-то отсутствует.
Как правильно поступить?
Хочу в шаблоне выбрать (по имени) вложенные в блок элементы и... ч.-ндь к ним применить.
Вижу, что в match
у меня this.elem
всегда undefined
, а elemMatch
(про который где-то что-то попадалось) почему-то отсутствует.
Как правильно поступить?
А откуда задача делать это именно через match?
Такие варианты не подойдут?
Если же нужно получить имя полученного элемента, то оно будет лежать в
this.elem
в теле шаблона.@tadatuta Ах, да! Забыл дополнить, что нужно соответствие "по маске". :)) Т.е., банальный
elem
, к сожалению, не подходит. В принципе, приспособив некоторые костыли, мог бы обойтисьelem('*')
, но он, как выяснилось, тоже не работает.Т.е., нужен именно доступ к
this.elem
внутриmatch
или что-то вроде.Про
-- можно подробней? У меня как-то не вышло. Как добраться до него из
match
?Проблему с тем, что звездочка в элементах матчится на все блоки можно закостылять через https://goo.gl/PBPzbi
А
this.elem
, конечно, доступен вmatch
, но только в том случае, когда он определен. Другое дело, что если написатьblock('b1')
и не писать предикат проelem()
, тоbem-xjst
автоматически отфильтрует все узлы про элементы, поэтому вmatch
после предиката про блок и не будетthis.elem
. Проверить легко — достаточно написать что-то типа@lilliputten Тот баг обходится вполне:
block('nuzhnyj-block').elem('*').match(function(){ return this.block === 'nuzhnyj-block' && this.elem === 'nuzhnyj-element'; }).content()('asd');
@zxqfox я это как раз и привел в примере по ссылке выше ;)