jQuery.tmpl проблемы со свойствами типа массива - PullRequest
0 голосов
/ 02 мая 2011

У меня есть объект Javascript, например:

var data = {
    Id: 1,
    Name: "Some name",
    Days: [true, true, true, false, false, true, false]
};

Эти объекты создаются на клиенте, и я хочу визуализировать их с помощью плагина jQuery.tmpl. Я определил шаблон так:

<ul class="days">
{{each Days}}
    <li class="day {{if $value}}on{{else}}off{{/if}}">${$index + 1}</li>
{{/each}}
</ul>

Когда я звоню

$("<ul class='days'>...</ul>").tmpl(data);

Я получаю только набор LI элементов и без обтекания UL вокруг них ...

Что мне здесь не хватает?

Ответы [ 2 ]

1 голос
/ 02 мая 2011

Вам нужно переместить этот код шаблона в элемент <script> (если вы этого еще не сделали), например, так:

<script type="text/x-jquery-tmpl" id="daysTemplate">
  <ul class="days">
  {{each Days}}
    <li class="day {{if $value}}on{{else}}off{{/if}}">${$index + 1}</li>
  {{/each}}
  </ul>
</script>

Затем выберите и визуализируйте этот шаблон так:

// You can inject the result into any container, using methods like appendTo()
//  html(), insert(), etc.
$('#daysTemplate').tmpl(data).appendTo('body');
1 голос
/ 02 мая 2011

Я создал скрипку здесь , и она работает. шаблон

<script id="daysTemplate" type="text/x-jquery-tmpl">
     <ul class="days">
    {{each Days}}
        <li class="day {{if $value}}on{{else}}off{{/if}}">${$index + 1}</li>
    {{/each}}
    </ul>
</script>

сценарий

var data = {
    Id: 1,
    Name: "Some name",
    Days: [true, true, true, false, false, true, false]
};
$("#daysTemplate").tmpl(data).appendTo('body');
...