Как выполнить итерацию по объекту в файле Soy при использовании шаблонов закрытия Google?

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

Если у меня есть объект и в JavaScript и вызывается шаблон Soy:

var obj = {'one':'a', 'two':b, 'three':c};
nameSpace.templateName({'paramValue': obj});

Как мне получить значения ['one', 'two', 'three'] ? Обычно я бы использовал функцию jQuery each () , но я не уверен, как сделать что-то подобное в файлах Soy без преобразования объекта в массив.

Объекты, которые я использую, имеют известную форму (там не являются вложенными объектами, или, если есть, они известны заранее и уходят на известную глубину). Приветствуются ответы на этот или общий объектный случай с вложенными объектами.

{namespace nameSpace}

/**
 * Prints keys and values of the object
 * @param paramValue object with keys and values
 */
{template .templateName}
    {$paramValue[0]}    // undefined
    {$paramValue.Keys}  // undefined
    {$paramValue.keys}  // undefined
    {$paramValue.one}   // prints 'a'
    {foreach $val in $paramValue}
      // never reached
    {/foreach} 
{/template}
14
задан alex 23 September 2014 в 04:23
поделиться