Условный оператор в шаблоне jQuery - PullRequest
7 голосов
/ 31 декабря 2010

Поддерживает ли новый плагин шаблона jQuery условный (троичный) оператор?Для печати простого значения, зависящего от условия, является ли {{if}} / {{else}} единственным вариантом?

Меня интересует что-то похожее на <?=($reviewed ? 'ham' : 'spam')?>

1 Ответ

17 голосов
/ 31 декабря 2010

Да, вы можете поместить произвольные функции и выражения в тег шаблона * ${}:

Оценивает указанное поле (свойство) для текущего элемента данных, или указанная функция JavaScript или выражение.

${reviewed ? 'ham' : 'spam'}

Итак, вы можете написать такой шаблон:

<script id="movieTemplate" type="text/x-jquery-tmpl">
    <!-- Ternary operator to assign a class -->
    <li class="${Year >= 1990 ? 'orange' : 'yellow'}">
        Title: ${Name}.
        {{each Languages}}
            ${$index + 1}: <em>${$value}. </em>
        {{/each}}
    </li>
</script>

Учитывая данные JavaScript и JSON, подобные этим:

var movies = [
{
    Name: "Meet Joe Black",
    Languages: ["French"],
    Year: 1990
}, 
{
    Name: "The Mighty",
    Languages: [],
    Year: 1985
}, 
{
    Name: "City Hunter",
    Languages: ["Mandarin", "Cantonese"],
    Year: 1994
}];

$("#movieTemplate").tmpl(movies).appendTo("#movieList");

Это относится к классу «оранжевый» для фильмов с годами, которые превышают или равны 1990 году, и классу «желтый» к фильмам с годами, меньшим, чем 1990.

Рабочий пример здесь: http://jsfiddle.net/andrewwhitaker/dY43s/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...