сверхлегкие шаблоны - 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;
}
/****************************/