javascript和小胡子 - 将数组传递给模板

mhe*_*ers 2 javascript jquery mustache

我正在尝试与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);
Run Code Online (Sandbox Code Playgroud)

模板:

<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>
Run Code Online (Sandbox Code Playgroud)

所以我不得不将决策对象中的所有childLinks传递给要在循环中解析的小胡子以输出<li>元素列表.

有人知道怎么做吗?

sci*_*tai 5

首先在对象中建模数据,

var scene = {
  tTitle: '',
  tDecision: '',
  tBacklink: ''
};
Run Code Online (Sandbox Code Playgroud)

然后在循环的每次迭代中将每个对象放在一个数组中

var scenes = [];

for () {
  scenes.push(scene);
}
Run Code Online (Sandbox Code Playgroud)

然后调用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>
Run Code Online (Sandbox Code Playgroud)