До сих пор не могу понять магию 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); } ) );
Как сделать правильно?