Усы / jQuery / javascript - как выполнить метод для переменной усов? - PullRequest
6 голосов
/ 11 декабря 2011

У меня есть простая настройка шаблона усов, которая берет объект player и создает элемент списка. Каков наилучший способ выполнения метода javascript для переменной в усах? Вот пример кода:

var playerTemplate = '<li><span class="player-position">{{ position }}</span><span class="player-name">{{ first_name }} {{ last_name }}</span></li>';
var playerRow = Mustache.to_html(playerTemplate, player);
$('ul#players-list').append(playerRow);

я хотел бы сделать что-то вроде:

{{ position.toUpperCase() }}

Я бы не хотел менять сам объект, потому что я мог бы хотеть, чтобы {{position}} не был в верхнем регистре в других ситуациях. Какие-нибудь подсказки относительно самого чистого и умного способа сделать это?

Большое спасибо.

1 Ответ

6 голосов
/ 11 декабря 2011

Усы намеренно очень просты («Шаблоны без логики»), поэтому вы не можете ничего сделать. Один из вариантов - добавить свойство positionUC:

player.positionUC = player.position.toUpperCase();

и затем в шаблоне:

{{positionUC}}

Вы также можете добавить функции:

// Note that render(text) will be HTML though...
player.uc = function(text, render) { return render(text).toUpperCase() };

и затем в шаблоне:

{{#uc}}{{position}}{{/uc}}

Возможно, вы могли бы переключиться на Руль и добавить помощника в верхний регистр.

...