我有一个像这样的模板
把手模板
<script id="choose-player-template" type="text/x-handlebars-template">
<label>Entity Name:</label>
<input type="text" value="{{entityName}}"></input>
<ul>
{{#players }}
<li><input type="checkbox" {{#if isSelected}}checked{{/if}}/>
{{name}}
</li>
{{/players}}
</ul>
<input type="button" onclick="saveSelection()" value="Save Selection" style="width:150px;"></input>
</script>
的Javascript
<script type="text/javascript">
var playersList = {players: [], entityName: "Name1"}; //I pass this to the handlebar template
</script
假设我将对象 playersList 传递给模板。我应该使用什么语法来引用Handlebars模板中的该对象。简而言之,如何访问传递给Handlebar模板的根对象。
修改: 实际上我对上面的问题听起来很混乱,所以这个编辑。实际上,该模板正在运行并正确显示 ul li 列表中的玩家列表。那部分没问题。有一个对象&#34; playersList 会传递给模板,并且此对象中的所有玩家都会正确显示。但是,我正在通过复选框更改每个玩家的状态。现在,用户完成更改后,他会点击输入按钮,如模板代码的最后一行所示。这将调用 saveSelection() javascript函数(上面的代码中未显示)。我不想将模板中的 this 对象传递给此函数。
答案 0 :(得分:0)
当您传入该对象时,您的上下文已经设置为基础。当您在循环内部时,无论如何都不知道访问基础对象。如果无法按照自己的方式获取,可能需要创建一个Helper函数来处理一些处理。
看起来你想迭代你的球员名单。
如果{{#each players}} {{this}} {{/each}}
,您可以players = ['joe', 'bob', 'jim']
。