2016-06-13 51 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}}