I am trying to learn mustache / icanhaz in conjunction with jquery and javascript, and I've got a mustache template to which I'm passing various data. One of the pieces of data is a list of choices, but that list can vary in length (say, one to three choices). How do I pass that varying data to mustache?
This is my code:
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);
Template:
<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>
So somehow I have to pass all the childLinks in the decision object to mustache to be parsed in a loop to output the list of <li>
elements.
Anybody know how to do this?
I am trying to learn mustache / icanhaz in conjunction with jquery and javascript, and I've got a mustache template to which I'm passing various data. One of the pieces of data is a list of choices, but that list can vary in length (say, one to three choices). How do I pass that varying data to mustache?
This is my code:
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);
Template:
<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>
So somehow I have to pass all the childLinks in the decision object to mustache to be parsed in a loop to output the list of <li>
elements.
Anybody know how to do this?
Share Improve this question edited Aug 15, 2011 at 21:45 Mrchief 76.3k20 gold badges145 silver badges192 bronze badges asked Aug 15, 2011 at 21:34 mheaversmheavers 30.2k63 gold badges201 silver badges326 bronze badges1 Answer
Reset to default 5Model your data in an object first of all,
var scene = {
tTitle: '',
tDecision: '',
tBacklink: ''
};
Then place each of these objects in an array on each iteration of your loop
var scenes = [];
for () {
scenes.push(scene);
}
Then call Mustache to render the template with the scenes array, the template has been modified like this
<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>
发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745441808a4627864.html
评论列表(0条)