salesforce/handlebars PHP是否支持JS风格无#非块级helper?
解决方案
你需要的双端兼容非块级helper确实可以实现,不需要使用带#的特殊inline helper语法,也不用妥协为块级helper写法。
salesforce/handlebars-php 原生支持和JS版Handlebars完全兼容的无#非块级helper,注册方式如下:
// 注册checked非块级helper $handlebars->registerHelper('checked', function ($condition) { return $condition ? 'checked="checked"' : ''; });
注册完成后,你原有的模板写法无需任何修改:
<input name="acheckbox" {{checked record.acheckbox}} />
该写法在PHP端和JS端都会按照预期渲染:当record.acheckbox为true时输出带checked="checked"属性的input标签,false时输出空值,不会额外生成冗余内容。
补充说明
你之前看到的官方文档中带#的inline helper是该PHP库特有的简化块级helper语法,本身就是为了不需要闭合标签的块级场景设计,和JS版Handlebars语法不兼容,不需要在跨端场景中使用。
内容的提问来源于stack exchange,提问作者LSerni
相关产品推荐
相关产品推荐

