2011-08-15 60 views
2

我想学习小胡子/ icanhaz与jquery和javascript结合使用,并且我有一个小胡子模板,其中传递了各种数据。其中一条数据是选择列表,但该列表的长度可能会有所不同(例如,一到三个选项)。我如何将这些不同的数据传递给小胡子?JavaScript和小胡子 - 将数组传递给模板

这是我的代码:

的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>元素列表的循环。

任何人都知道如何做到这一点?

回答

5

型号你在一个对象首先是数据,

var scene = { 
    tTitle: '', 
    tDecision: '', 
    tBacklink: '' 
}; 

然后将这些对象在阵列上的每次循环

var scenes = []; 

for() { 
    scenes.push(scene); 
} 

然后调用小胡子呈现模板与场景阵列一样,模板已被修改为这样

<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> 
+0

+1!很好的答案! – Mrchief

+0

嗯,唯一的问题是 - 并不是所有需要循环的数据,只有tDecision才会有多个值。我想我会删除这个问题 - 我在这里开始一个新的可能更清晰,更重要的问题:http://stackoverflow.com/questions/7071193/javascript-jquery-creating-an-object-in-一个特定的格式从一个循环 – mheavers

+0

基本上,我有一些工作,只是它不吐出一个单独的李每个tDecision,它只是生成一个逗号分隔列表 – mheavers