在Kendo模板中访问数据数组

时间:2014-03-17 16:31:35

标签: javascript jquery arrays json kendo-mobile

我有一个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,所以这个例子什么都不做。

2 个答案:

答案 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){
 ...
}