模板{{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的这个模板。
答案 0 :(得分:11)
实际上{{each}}将遍历对象的属性。你可以这样做:
{{each(prop, val) myObj}}
<li><span>${prop}</span> - <span>${val}</span></li>
{{/each}}
以下是Knockout中的示例:http://jsfiddle.net/rniemeyer/rpMsM/
如果你真的想使用模板绑定的foreach
选项,那么唯一真正的选择是将对象映射到具有键/值属性的对象数组。这样的事情:http://jsfiddle.net/rniemeyer/rpMsM/1/
答案 1 :(得分:7)
您也可以使用此
{{each myObj}}
<li><span>${$index}</span> - <span>${$value}</span></li>
{{/each}}