2016-06-13 77 views
0

我认为#replace helper存在一个错误,如果“haystack”参数(输入字符串)不包含“needle”参数(要搜索的字符串),则输出是空字符串,而不是原始字符串。如果不匹配,我希望助手返回原始字符串。Bigcommerce模板错误与#replace Handlebars helper?

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

{{!-- 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}} 
+0

退房这篇文章,看看是否有帮助:https://stackoverflow.com/questions/37487158/bigcommerce-stencil- custom-handlebars-replace-helper – Alyss

+0

我看过那个页面,但我不认为它解决了我所看到的行为。我正确地调用助手,但没有匹配时没有输出。我希望当没有匹配时输出匹配输入。 – blumo

+0

其实,我应该说我*认为*我正确调用助手。使用文档中示例中显示的语法会引发错误,并按照上面的示例使用它,但只有在匹配时才起作用。 – blumo

回答

0

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

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

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