有一个issue opened a few years ago on JsRender允许循环对象而不仅仅是数组。其中一个有助于重新解决问题的例子是this:
{
joe:{
name: 'Joe',
status: 'out'},
jane:{
name: 'Jane',
status:'in'},
jill:{
name:'Jill',
status:'away'}
}
最终,该功能已实施,但我发现的所有示例都没有解决这一特定问题,它始终是数据的一部分,as in the examples given at the end of the issue thread,通常看起来像是这样的for
的文档:
[
{
"name": "Pete",
"address": {
"city": "Seattle"
}
},
{
"name": "Heidi",
"address": {
"city": "Sidney"
}
}
]
如何使用for
或props
迭代词典 ,如上所述? (不一个对象数组)无论我尝试什么,我都会收到错误:
...期待的表达,得到了':'
或者任何适合我尝试的排列:
{{for :data}}
{{for :#data}}
{{for :}}
等。根据我的经验,在JSON文件中遇到带有这样的索引的词典是非常正常的,所以我很惊讶没有找到任何示例。
非常感谢任何帮助或见解。
我没有使用JsViews,只有JsRender v0.9.87。
答案 0 :(得分:0)
这里有几个{{props}}
的例子:
http://www.jsviews.com/#propstag
在示例中,您有{{props address}}
- 但如果要迭代顶级对象,则可以使用{{props #data}}
或{{props}}
(因为要迭代的对象) over是当前的数据上下文...)。
语法{{for :#data}}
不正确(不确定来自哪里)。
正如错误消息所示,那里不应该有冒号。如果您想迭代当前数据,它将是{{for #data}}
或{{for}}
。
(BTW还有一个{{jsonview}}标签,它也可以与JsRender一起使用,不仅适用于JsViews。http://www.jsviews.com/#samples/tag-controls/jsonview。不确定它是否与你的场景相关。它实际上是一个样本显示{{props}}
在当前数据上运行,但有数据绑定。另请参阅http://www.jsviews.com/#jsvpropstag@jsonview)
这是new sample(jsfiddle),它采用http://www.jsviews.com/#samples/editable/tags示例并用电影哈希替换电影数组。您可以看到使用{{props}}来迭代顶级字典。我稍后会将样本添加到jsviews.com ......