До сих пор не могу понять магию apply, applyNext, applyCtx хотя ни раз читал ман по ним
Вообще мне нужно изменить элемент на ссылку, если в параметрах есть url, я сделал так
block('nav').elem('item')
(
match(this.ctx.url)
(
function()
{
this.ctx.block = 'link';
delete this.ctx.elem;
this.ctx.mix = [
{
block: this.block,
elem: 'item'
}
];
applyCtx(this.ctx);
}
)
);
Получаю бесконечную рекурсию - [RangeError: Maximum call stack size exceeded]
Сейчас я поставил такой костыль:
block('nav').elem('item')
(
match(this.ctx.url && !this.ctx._prepared)
(
function()
{
this.ctx.block = 'link';
this.ctx._prepared = true;
delete this.ctx.elem;
this.ctx.mix = [
{
block: this.block,
elem: 'item'
}
];
applyCtx(this.ctx);
}
)
);
Как сделать правильно?