Вложенные друг в друга шаблон JQuery - PullRequest
2 голосов
/ 14 декабря 2011

Как я могу получить родительское значение $ для вложенного {{each}}? Я бы предпочел «прямое» решение, без необходимости создавать второй шаблон и использовать его из первого.

1 Ответ

5 голосов
/ 20 февраля 2012

Вы можете просто сделать это: ${ parentItem.Name }, если родительский элемент назывался parentItem, а требуемая переменная-член называлась Name.Вот пример, основанный на примере фильма в документах jQuery API для {{each}}:

Шаблон:

<li>
    Title: ${Name}.<br />
    {{each(i, edition) Editions}}
        ${i + 1}: <em>${edition.Name}. </em><br />
        Languages: <br />
        {{each(i, language) Languages}}
            ${language} (${$data.Name}, ${edition.Name}) <br />  
        {{/each}}
        <br />
    {{/each}}
</li>

Данные (только один элемент для этого примера):

var movies = [
    {
        Name: "City Hunter",
        Editions: [
            {
                Name: "Original", 
                Languages: ["Mandarin", "Cantonese"]
            },
            {
                Name: "DVD",
                Languages: ["French", "Spanish"]
            }
        ]
    }
];

Результат:

Title: City Hunter.
1: Original.
Languages:
Mandarin (City Hunter, Original)
Cantonese (City Hunter, Original)

2: DVD.
Languages:
French (City Hunter, DVD)
Spanish (City Hunter, DVD) 

В этом примере внутренний {{each}} получает значения из:

  • Внешний {{each}} с ${edition.Name}
  • Корневой шаблон данных с ${$data.Name}
...