Могу ли я выполнить 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}}