在ICanHaz.js / Mustache中迭代Roots

时间:2013-02-13 14:42:13

标签: javascript jquery mustache icanhaz.js

我遇到了使用ICanHaz.js / Mustache进行迭代的问题。我想循环JSON结构的根并提取一个特定的参数。这是我的JSON:

{
"1": {
    "param1": "true",
    "param2": "false",
    "param3": "false",
    "targetMe": "ADMINUSERS"
},
"2": {
    "param1": "true",
    "param2": "false",
    "param3": "false",
    "targetMe": "ADMINUSERS"
},
"3": {
    "param1": "true",
    "param2": "false",
    "param3": "false",
    "targetMe": "ADMINUSERS"
}
}

这是我的ICanHaz模板:

<script id="groupselect_template" type="text/html">
     {{ /. }}
        <option value="{{name}}">{{name}}</option>
     {{ /. }}
</script>

这是我的JS:

var iterationFunc = function(data) {
var temp = ich.groupselect_template(data);
$('#selectdiv').append(temp);

}

我将这个结构基于过去的答案(hereherehere),但我似乎无法让它发挥作用。有人可以帮忙吗?由于ICH里面有胡子,我知道更广泛的基于胡子的解决方案可以起作用。

1 个答案:

答案 0 :(得分:0)

我认为你不能轻易地在胡子中循环对象属性。但是你可以通过数组来实现,所以如果可以的话,将你的JSON改为

[{
    "param1": "true",
    "param2": "false",
    "param3": "false",
    "targetMe": "ADMINUSERS"
},{
    "param1": "true",
    "param2": "false",
    "param3": "false",
    "targetMe": "ADMINUSERS"
},{
    "param1": "true",
    "param2": "false",
    "param3": "false",
    "targetMe": "ADMINUSERS"
}]

或在将数据应用于模板之前,迭代它并将其更改为数组,例如使用jQuery

var dataArray = [];
$.each(data, function(key, item){
    dataArray.push(item);
});

Here's一个工作小提琴