2016-05-05 3 views
0

私はハンドルバーにはかなり新しいので、私と一緒に裸にしてください。ハンドルバーのテンプレートから<br>を取り除く

私はCMSによって駆動されるデータベースから移入されたテンプレートを持っています。 CMSには、データを入力する人々が実際にHTMLを知らない人がいます。だから、段落に内容をラップするのではなく、一連の区切りタグ(間違って、あなたのことを思い出して)に入るでしょう。

私はそれをきちんとした小さなテンプレートにインポートし、そのデータを使ってボタンやその他のものに表示するデータラベルを設定します。

私はいくつかのHandlebarsヘルパーが検索と置換を実行すると言いましたが、私のテンプレートの構文を記述してエラーを表示せずにコンパイルする方法はわかりません。ここで私が使用していたヘルパーがあります:

Handlebars.registerHelper('replace', function(find, replace, options) { 
    var string = options.fn(this); 
    return string.replace(find, replace); 
}); 

さて、これは前方にかなりまっすぐに見えますが、実際には{{#replace}}

以外のテンプレートにパラメータをスタッシュをトスする方法にはドキュメントがありません私は{{caption}}を見渡しようとしています。私はいつも '
'のインスタンスを探していて、 ''で置き換えています。

私はこのような隠しを書くと、{{#replace '<br>'、 ''、caption}}、その後解析エラーが発生します。

ありがとうございます。

答えて

1

このような状況でブロックヘルパーを使用したいとは思っていません。私は、次の正規ヘルパーがすると思う:私たちはfindテキストのすべてのインスタンスを置き換えることができるように、私は正規表現を使用しています

Handlebars.registerHelper('replace', function (find, replace, context) { 
    return context.replace(new RegExp(find, 'g'), replace); 
}); 

注意。 「『置き換え』:欠落しているヘルパー不明なエラー」、と私はそれを入れて、今私が得てきた...

{{replace '<br>' ' ' caption}} 
+0

を:

その後、次のようにテンプレート内このヘルパーを使用しますハンドルバーブロックの前にテンプレートに挿入する – Murphy1976

+0

「テンプレートに入れる」とはどういう意味ですか? – 76484

+0

私はすべての機能を設定するために、テンプレートの上部にJavascriptのブロックを持っています。テンプレートの実際のボディには、ハンドルバーのマークアップがあります。 – Murphy1976

関連する問題