首页 > 解决方案 > 嵌套车把问题

问题描述

所以我创建了一个自定义手柄栏,可以像这样检查相等性

HandlerBars.registerHelper('ifEquals', (arg1, arg2, options) => {
      if (arg1 == arg2) {
        return options?.fn(this);
      }
      return options?.inverse(this);
    });

我基本上像这样在 html 中使用它 {{#ifEquals property "string"}}

现在在这个块中,我有一个要渲染的文本和另一个#if 句柄栏。

问题是它在 if 句柄之前呈现文本,但即使它应该返回一个属性,它也不会调用 if 句柄,而是转到 if 句柄中的 {{else}}

标签: htmltypescripthandlebars.js

解决方案


我已经通过使用另一个这样写的车把解决了这个问题

HandlerBars.registerHelper('equals', (arg1, arg2, options) => {
      return arg1==arg2;
    });

在主车把(#ifEquals)中,我将其更改为 {{#if (equals field "string")}} 其余部分保持不变并且有效。


推荐阅读