Могу ли я выполнить jquery-tmpl каждый по свойствам объекта
Директива шаблона {{each}} отлично подходит для итерации по массиву, подобному этому:
var myArray = ["a","b","c"];
Мне интересно, есть ли эквивалент для итерации над свойствами объекта, то есть:
var myObj = {"propOne": "a", "propTwo": "b", "propThree": "c"};
Мне нужен шаблон, который позволит мне выводить как
<ul>
<li><span>propOne</span><span>a</span></li>
.... etc
Для бонусных очков я бы хотел использовать этот шаблон из KnockoutJS.
Ответы
Ответ 1
Фактически {{each}} будет перемещаться по свойствам объекта. Вы можете сделать что-то вроде этого:
{{each(prop, val) myObj}}
<li><span>${prop}</span> - <span>${val}</span></li>
{{/each}}
Вот пример в нокаут: http://jsfiddle.net/rniemeyer/rpMsM/
Если вы действительно хотите использовать опцию foreach
привязки шаблона, то единственным реальным вариантом является сопоставление объекта с массивом объектов с свойствами ключа/значения. Что-то вроде этого: http://jsfiddle.net/rniemeyer/rpMsM/1/
Ответ 2
Вы также можете использовать этот
{{each myObj}}
<li><span>${$index}</span> - <span>${$value}</span></li>
{{/each}}