Я хочу создать свой собственный шаблон, которому я могу передать объект, и чтобы шаблон 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}