Javascript 在“把手”辅助对象中使用变量

Javascript 在“把手”辅助对象中使用变量,javascript,jquery,html,handlebars.js,Javascript,Jquery,Html,Handlebars.js,我有一个比较两个值的把手助手。我的代码在下面 {{#compare action "blank" operator="!="}} <button type="button" class="btn btn-primary btn-xs btn-approval" data-id="{{../sid}}" data-table="distributor">Approve</button> <button type="button" class="btn btn-dang

我有一个比较两个值的把手助手。我的代码在下面

{{#compare action "blank" operator="!="}}
<button type="button" class="btn btn-primary btn-xs btn-approval" data-id="{{../sid}}" data-table="distributor">Approve</button>
<button type="button" class="btn btn-danger btn-xs btn-delete-approval" data-id="{{../sid}}" data-table="distributor">Delete</button>
{{/compare}}
{{{#比较操作“blank”操作符=“!=”}
批准
删除
{{/比较}

由于某些原因,我无法访问帮助程序中的sid变量。我该怎么做?

sid
作为参数传递给助手。您可以在helper函数中作为参数访问它

{{#compare ../sid  action "blank" operator="!="}}
      <button type="button" class="btn btn-primary btn-xs btn-approval" data-id="{{sid}}" data-table="distributor">Approve</button>
      <button type="button" class="btn btn-danger btn-xs btn-delete-approval" data-id="{{sid}}" data-table="distributor">Delete</button>
{{/compare}}

你能在父上下文中找到sid吗?没有代码就帮不了你。这里很明显,您没有将页面上下文传递给包含的子模板。比较代码或完整的手柄template@WillEnglishIV“compare”帮助程序或其外部代码片段应该足够了,此外还有一些执行模板时使用的示例上下文,但我最终做的是在我的手柄里做逻辑,而不是用手柄
Handlebars.registerHelper('compare', function(sid, action, blank, operator, options) {
    this.sid = sid;
    // your code here...
});