我可以在每个对象属性上执行jquery-tmpl吗?

Pet*_*son 11 javascript jquery-templates knockout.js

模板{{each}}指令非常适合迭代这样的数组:

var myArray = ["a","b","c"];
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一个等价的迭代对象属性,即:

var myObj = {"propOne": "a", "propTwo": "b", "propThree": "c"};
Run Code Online (Sandbox Code Playgroud)

我想要一个让我输出的模板

<ul>
  <li><span>propOne</span><span>a</span></li>
  .... etc
Run Code Online (Sandbox Code Playgroud)

对于奖励积分,我想使用KnockoutJS的这个模板.

RP *_*yer 11

实际上{{each}}将遍历对象的属性.你可以这样做:

{{each(prop, val) myObj}}
      <li><span>${prop}</span> - <span>${val}</span></li>
{{/each}}
Run Code Online (Sandbox Code Playgroud)

以下是Knockout中的示例:http://jsfiddle.net/rniemeyer/rpMsM/

如果您真的想使用foreach模板绑定的选项,那么唯一真正的选择是将对象映射到具有键/值属性的对象数组.像这样:http://jsfiddle.net/rniemeyer/rpMsM/1/


Ari*_*yak 7

你也可以用这个

{{each myObj}}
      <li><span>${$index}</span> - <span>${$value}</span></li>
{{/each}}
Run Code Online (Sandbox Code Playgroud)