【问题标题】:Bigcommerce Stencil bug with #replace Handlebars helper?带有#replace Handlebars 助手的 Bigcommerce Stencil 错误?
【发布时间】:2016-06-13 18:51:10
【问题描述】:

我认为#replace 助手有一个错误,如果“haystack”参数(输入字符串)不包含“needle”参数(要搜索的字符串),则输出是空字符串而不是比原来的字符串。如果没有匹配,我希望助手返回原始字符串。

例如,这将返回一个空字符串:

{{!-- where value="sometext", as in: {"value":"sometext"} --}}
{{#replace " " value}}+{{/replace}}

如果这是预期的行为,当我不知道输入字符串是否包含我要替换的值时,如何调用#replace?

请注意,此示例按预期工作:

{{!-- where value="some text", as in: {"value":"some text"} 
      this correctly returns "some+text" --}}
{{#replace " " value}}+{{/replace}}

【问题讨论】:

  • 看看这篇文章是否有帮助:stackoverflow.com/questions/37487158/…
  • 我确实看到了该页面,但我认为它没有解决我所看到的行为。我正确地调用了助手,但是当没有匹配时没有输出。当不匹配时,我希望输出与输入匹配。
  • 实际上,我应该说我认为我正确地调用了助手。使用文档中示例中显示的语法会引发错误,并且如我在上面显示的那样使用仅在匹配时才有效。

标签: bigcommerce


【解决方案1】:

通过在 Cornerstone 主题中找到一个示例,我弄清楚了 #replace 助手的正确用法是什么。当确实没有匹配是预期的行为时,看起来返回一个空字符串,并且为了处理不匹配的情况,需要 {{else}}。

所以,修改我原来的例子,这将是正确的用法:

{{#replace " " value}}+{{else}}{{value}}{{/replace}}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多