访问传递给Handler.js Template的上下文(或根对象)



我有一个类似的模板

Handlebars模板

<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列表中的玩家列表。那部分很好。有一个对象"playersList,它被传递到模板,并且该对象中的所有玩家都被正确显示。但是,我正在通过复选框更改每个玩家的状态。现在,用户完成更改后,他单击输入按钮(显示在模板代码的最后一行(。这将调用saveSelection((javascript函数(上面的代码中没有显示(。我不想把this对象从模板传递给这个函数。

当你传入该对象时,你的上下文已经设置为基对象。我不知道当你在循环中时如何访问基对象。如果无法按您想要的方式进行处理,您可能需要创建一个Helper函数来处理某些处理。

看起来你想迭代你的玩家列表。如果是players = ['joe', 'bob', 'jim'],则可以执行{{#each players}} {{this}} {{/each}}

最新更新