開発していると、外部ファイルのJavaScriptに値を渡したい時がある。
URLなど、動的にJavaScriptの値を変更したい時など。
しかし、public/js配下にあるJSファイルにはblade上のJavaScriptのようにphpの値を使うことは出来ない。
■方法1
それでもどうしても渡したい時の方法。
JavaScriptの外部ファイルを呼び出すblade側で↓を定義しておけば
<script>
var sample = 'abc';
</script>
呼び出したJavaScript側でその変数が参照できる。
■方法2
JavaScriptをjsファイルとしてpublic配下に置くのではなく、bladeファイルとしてviews配下に置く。
JavaScript部分を切り取り、xxx.blade.phpとしてviews配下に置いて、bladeからインクルードする
@include('xxx')
こうすれば、コントローラから渡された値は、JavaScript内で使用でき、動的に値を変更することが出来る。
この方法は、ブラウザの「ソースを見る」で展開されたコードを見ると、直接ベタに書いているように見えてカッコ悪いというデメリットがある。
どちらがいいのだろう?
もしくは他に良い方法があるのだろうか??