3

symfony2とtwigテンプレートを使用して、私は通常、*html.twigファイル内に埋め込まれたjsを使用して、さらに多くのページをダイナマイズします。

ページに外部JSファイルを添付した場合はどうなりますか?それらの中に小枝コードを導入するにはどうすればよいですか?

私はそれが一種の摩耗に聞こえることを知っていますが、javascriptから既知のsymfonyパスにリダイレクトしようとするとそれほど多くはありません。ちょうどこのような:

$.post("{{ path('_check_coupon') }}",{code: coupon_code}, function(json) {
    // do whatever...
});

ご覧のとおり、完全に分離されたjsファイルに既知のパスへのajax呼び出しがあります"_check_coupon"

これにアプローチするアイデアはありますか?

前もって感謝します

4

2 に答える 2

8

data-path次のように、このようなパスをDOM要素の属性に埋め込むことができます。

<div id="widget" data-path="{{ path('_check_coupon') }}"> ... </div>

次に、それをフェッチします。

$.post( $('#widget').data('path') ,{code: coupon_code}, function(json) {
    // do whatever...
});

これはバニラアプローチですが、jsとtwigの両方を1つのファイルに混在させるよりも保守性が高く、少なくとも構文のハイライトは得られません。

もちろん、フォームを扱っている場合は、フォームのaction属性をフェッチするだけです。


とにかく、JSとマークアップの両方を同じページに配置しないことをお勧めします。スクリプトをキャッシュしたり、縮小したりすることはできません。そのため、関係する行が非常に少ない場合を除いて、スクリプトを分離することを検討してください。について私の小さな図書館をチェックしてください。

于 2012-09-16T16:08:13.427 に答える