我正在尝试与jquery和javascript一起学习小胡子/ icanhaz,并且我有一个小胡子模板,我正在传递各种数据。其中一个数据是一个选项列表,但该列表的长度可能不同(例如,一到三个选项)。如何将不同的数据传递给小胡子?
这是我的代码:
使用Javascript:
for (childIndex in scenes[sceneID].children) {
childSceneID = scenes[sceneID].children[childIndex];
childScene = scenes[childSceneID];
childLink = childScene.name;
}
decision = ich.decision(decisionData);
$('#page_container').append(decision);
模板:
<script id="decision" type="text/html">
<div id="page">
<h1>{{ tTitle }}</h1>
<ul id="options">
<li>{{tDecision}}</li>
</ul>
{{#tBacklink}}<a id="back" data-sceneid="{{tBacklink}}">Back</a>{{/tBacklink}}
</div>
</script>
所以不知何故,我必须将决策对象中的所有childLinks传递给要在循环中解析的小胡子,以输出<li>
元素的列表。
有人知道怎么做吗?
答案 0 :(得分:5)
首先在对象中建模数据,
var scene = {
tTitle: '',
tDecision: '',
tBacklink: ''
};
然后在循环的每次迭代中将每个对象放在一个数组中
var scenes = [];
for () {
scenes.push(scene);
}
然后调用Mustache使用scenes数组渲染模板,模板已经像这样修改
<script id="decision" type="text/html">
<div id="page">
{{#scenes}}
<h1>{{ tTitle }}</h1>
<ul id="options">
<li>{{tDecision}}</li>
</ul>
{{#tBacklink}}<a id="back" data-sceneid="{{tBacklink}}">Back</a>{{/tBacklink}}
{{/scenes}}
</div>
</script>