現在のurlクエリ文字列を吐き出すハンドルバーヘルパーを作成しようとしています。次に、そのクエリ文字列を使用してテンプレートを設定します。私はhtmlファイル生成を行うためにアセンブルを使用しています。現在のURLクエリ文字列を取得
私のURLは次のようになります:groups/group-details/?id=1
と私はid値を取得したいと思います。ここで
は私のヘルパーです:
Handlebars.registerHelper('currentId', function() {
return document.location.search.split('?')[1].split('=')[1];
});
そして、私は私の.hbsでそれを呼び出していますが、このようにテンプレート:
{{currentId}}
私はそれだけで、この例では1
を吐き出すことを期待していないが、何もしています示されています。
どこが間違っていますか?
- 編集 -
ウェブインスペクタコンソールで周り掘りは私のヘルパーが登録されているが、私はreturn文にブレークポイントを置けば、それはヒットれることは決してありません示しています。私はヘルパーがちょうど '実行されていないと仮定します。
あなたは何を言っているのですか。 '\ {{currentId}}'を入れるだけで、生成されたhtmlに '{{currentId}}'が出力されます。 – boz
ブラウザにテンプレートをレンダリングしていますか?もしそうでなければ、 'document'がサーバー上で利用可能になるとは思わないので、その時点ではクエリ文字列はありません。 – doowb
私はそうではありません。クエリ文字列についてあなたが言っていることは、理にかなっています。私は自分のアプローチを変えて、そのページセットのテンプレートをブラウザでレンダリングする必要があります。 – boz