Как ссылаться на конкретный объект в массиве объектов, используя jTemplates - PullRequest
0 голосов
/ 05 апреля 2010

Я использую отличный плагин jTemplates для создания контента.

Учитывая объект данных, подобный этому ...

var data = {
 name: 'datatable',
 table: [
  {id: 1, name: 'Anne'},
  {id: 2, name: 'Amelie'},
  {id: 3, name: 'Polly'},
  {id: 4, name: 'Alice'},
  {id: 5, name: 'Martha'}
 ]
};

.. Мне интересно, можно ли напрямую указать объект в массиве объектов, используя $ T. (Я надеюсь, что есть что-то вроде $ T.table: 3 доступно)

В настоящее время единственный способ получить доступ к определенному объекту в массиве - это сделать что-то вроде этого

{#foreach $T.table as record}

    {#if $T.record$iteration == 3}
        This is record 3!  Name:  {$T.record.name}
    {#/if}

{#/for}

Однако это кажется неуклюжим ...

Есть предложения?

Спасибо

1 Ответ

0 голосов
/ 05 апреля 2010

С данными, которые вы разместили, вы можете сделать это с простым javascript:)

data.table[2].id   // 3
data.table[2].name // "Polly"

table является непосредственным потомком data, и это получает третий child (массивы основаны на 0).

Альтернатива, если я неправильно понял, и вы хотите искать по id, будет выглядеть примерно так:

for(var i in data.table) {
  var o = data.table[i];
  if(o.id == 3) alert(o.name); // "Polly"
}
...