.bladeテンプレートビューのLaravelヘルパー関数のパラメータとしてハンドルバーデータ({{ id }}
)を使用したいとします。Laravelのブレードテンプレート関数内のハンドルバーデータの使用
@{{#each users}}
または@{{ name }}
のような.blade.php拡張子を使用するとハンドルバーの括弧をエスケープすることがわかりました。これは完全に機能します。
私が原因で、ネストされた二重の中括弧のLaravelのヘルパー関数内@{{ id}}
を使用したいときに問題が来る:
<a href="#" class="btn btn-xs btn-warning" data-route="{{ route('admin.membership.toggle-show-hide', ['id' => @{{ id }}]) }}">
Hide
</a>
私はヘルパー関数route
は、パラメータの中括弧を期待していないので、これは動作しないことを知って私はまだHandlebars contexのデータをブレードテンプレートビューのLaravelのヘルパー関数に何らかの形で渡すことができる必要があります。
私はこれを達成するためにさまざまな方法を試みましたが、成功しませんでした。
誰かが何らかの回避策を知っているのですか、それとも何か考えていますか? ありがとうございます。
EDIT
(私が現在使用して)代替が必要なパラメータを受け入れ、いくつかのアクションのためのルートを生成しますハンドルバーヘルパー書くことである。これを使用して
Handlebars.registerHelper("mmbrshpToggleShowHideRoute", function(id) {
return APP_URL + '/admin/membership/' + id + '/toggleShowHide';
});
を、I Handlebarsテンプレートのルート文字列(.blade.php拡張子付き)を、Laravelのコントローラから取得したHandlebars JSONコンテキストの各項目に対して生成することができます。
<a href="#" class="btn btn-xs btn-success" data-route="{{ mmbrshpToggleShowHideRoute id }}">
Hide
</a>
私は実際にハンドルのヘルパー機能でルートURLをハードコーディングしているので、私はこのアプローチが嫌いです。これは動作し、ビューとテンプレート全体で再利用性を提供しますが、Laravelのroute
ヘルパ関数を使用してルートを生成し、Handlebarsコンテキストからid
パラメータを渡す可能性がある場合はより良いでしょう。
これはリソースを心配する必要性を取り除く、フロントエンド(javascript)のルート。このように、Handlebarsテンプレートに必要なルートは常に有効で有効です。ありがとう;) – lbartolic