сверхлегкие шаблоны - easy templates

сверхлегкие шаблоны - easy templates

by Yury

JavaScript

//сверхлегкие шаблоны - easy templates
//Как, вы еще занимаетесь конкатенацией строк через оператор +? Ведь есть способ, который гораздо лучше подходит для добавления ваших данных в строку. Он называется шаблонизацией, вот мини-фреймворк для этого способа, размером буквально в 2,5 строчки кода.
//http://frontender.info/javascript-hacks-for-hipsters/


var firstName = 'Таль';
var screenName = 'ketacode'

// Чудовищно
'Привет, меня зовут ' + firstName + ', а мой твиттер — @' + screenName;

// Отлично
var template = 'Привет, меня зовут {first-name}, а мой твиттер - @{screen-name}';
var txt = template.replace('{first-name}', firstName).replace('{screen-name}', screenName);



/****************************/

horseRaceTracksTemplateHtml = '<li class="team-horse #{horse_cntnum_class}#"><em class="opener" href="#popup"> \n ' +
'<div class="horse-hold stay-on-start" style="#{horse_hold_position_style}#"><span>#{sales_game_teamname}#</span></div> \n ' +
'<strong class="ghost-horse-hold stay-on-start" style="#{ghost_horse_hold_position_style}#"></strong></em></li> \n ';

    for (var i = 0; i < horses.length; i++) {
        horseHtml = horseRaceTracksTemplateHtml
            .replace(/#{horse_cntnum_class}#/g, 'horse' + clsCnt)
            .replace(/#{horse_hold_position_style}#/g, 'left:' + (horses[i].total * 100) + '%' )
            .replace(/#{ghost_horse_hold_position_style}#/g, 'left:' + (horses[i].expected * 100) + '%')
            .replace(/#{sales_game_teamname}#/g, horses[i].SalesTeam);

        $trackList.append(horseHtml);
        clsCnt++;
        clsCnt = clsCnt > 6 ? 1 : clsCnt;
    }

/****************************/