我有一个Kendo移动视图,它以JSON Feed的形式获取数据,然后使用Kendo模板显示它。
我想用这个JSON提要创建一个相当复杂的网格,我能想到的唯一方法是将div
中的某些项目包装,其类名根据其位置而变化数组。
如何在Kendo模板中访问数组对象?
The docs举个例子:
例如,要使用JavaScript和Kendo UI模板显示项目列表,我们使用以下语法:
<script id="javascriptTemplate" type="text/x-kendo-template">
<ul>
# for (var i = 0; i < data.length; i++) { #
<li>#= data[i] #</li>
# } #
</ul>
</script>
如果我在我的模板中执行这样的console.log:
# console.log(data); #
我可以看到data
确实引用了JSON,但是它不可用(data.length
)返回undefined,所以这个例子什么都不做。
答案 0 :(得分:1)
您将JSON对象视为列表。它是一个对象。
var count = Object.keys(data).length;
alert(count);
因此我们知道Object.keys(data).length计算所有键。因此,我们可以单独选择这些密钥。 Object.keys(数据)[i]中。你可以循环它并用IF包装它,每2n + 2项。
for (var i = 0; i < Object.keys(data).length; i++) {
if (i%2 == 0) {
# this will do something for every even element
};
}
我建议用一个类包装所有东西(所以没有if语句)。然后使用CSS选择器2n + 2(如果你正试图用CSS完成某些事情)。
答案 1 :(得分:0)
我建议您使用CSS选择器nth-child。
div:nth-child(2n){
...
}