HandlerBar自定义Helper不能正确执行

sunshine_nanjing sunshine_nanjing 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
各位大侠们,我在HandlerBar自定义Helper时出现了一些问题,想请教大家:
我想实现if(a == b)a和b都是字符串,这样的效果,在HandlerBar中自定义的Helper如下:
Handlebars.registerHelper('ifEquals', function(var1, var2, options) {
console.log('var1', var1);
console.log('var2', var2);
var value1 = options.fn(var1);
var value2 = options.fn(var2);
console.log('value1', value1);
console.log('value2', value2);

if(value1 == value2) {
return options.fn(this);
} else {
return options.inverse(this);
}
});


我在模板文件中的代码如下:
{{#each configGroup in configGroups}}
{{#ifEquals selectedConfigGroup.displayNameHosts configGroup.displayNameHosts}}
<button {{bindAttr disabled="controller.isHostsConfigsPage"}}
class="btn btn-primary" {{action "selectConfigGroup" configGroup target="controller"}}>
{{configGroup.displayNameHosts}}</button>
{{else}}
<button {{bindAttr disabled="controller.isHostsConfigsPage"}}
class="btn" {{action "selectConfigGroup" configGroup target="controller"}}>
{{configGroup.displayNameHosts}}</button>
{{/ifEquals}}

{{/each}}


执行后浏览器控制台输出的var1和var2是传入的表达式 selectedConfigGroup.displayNameHosts configGroup.displayNameHosts
而value1和value2都是空字符串,更诡异的事按钮居然显示了三个,当前项目中复合条件的按钮应该只有一个,请问各位大侠,这个问题是怎么引起的?在下百思不得其解
...全文
评论 1
收藏 已收藏
分享
返回顶部
sunshine_nanjing
JavaScript 87,983 成员 224,681 内容