2016-06-13 2 views
0

"haystack" param(入力文字列)に "needle" param(検索する文字列)が含まれていない場合、出力は空の文字列ではなく#replaceヘルパーのバグがあると思います元の文字列。一致がない場合、ヘルパーは元の文字列を返すことを期待します。それは予想される動作であれば、私は入力文字列は、私がしたい値を含むかどうかわからないとき、どのように私は#replace呼び出すことができますBigcommerce #replaceのステンシルバグハンドルバーヘルパー?

{{!-- where value="sometext", as in: {"value":"sometext"} --}} 
{{#replace " " value}}+{{/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}}