如何在 jQuery 或 JS 中使用 Laravel URL::asset

Tom*_*asz 1 javascript jquery laravel

我想使用 URL::asset 将 url 传递给 javascript 而不是直接 url

$("select#lang").css("background-image", 'url(http://pascha.org/img/' + $("select#lang").val() + '.png)');
Run Code Online (Sandbox Code Playgroud)

我想做这样的事情:

$("select#lang").css("background-image", '{{ URL::asset('/images/flags/') }}' + $("select#lang").val() + '.png)');
Run Code Online (Sandbox Code Playgroud)

但这当然行不通,问题是它应该如何看是否可能。

haa*_*kym 8

为什么这不起作用?

$("select#lang").css("background-image",
  '{{ URL::asset('/images/flags/') }}' + $("select#lang").val() + '.png)');
Run Code Online (Sandbox Code Playgroud)

它不起作用的唯一原因是如果您在刀片文件之外和单独的 JS 文件中执行此操作。除非我错过了什么?

如果你有一个单独的 JS 文件,你可以在你的 JS 文件在你的标记中声明之前在刀片文件中分配一些“全局”变量。

例如:

<script>
    // "global" vars, built using blade
    var flagsUrl = '{{ URL::asset('/images/flags/') }}';
</script>
<script src="your-js-file.js"></script>
Run Code Online (Sandbox Code Playgroud)

然后在your-js-file.js 中,你可以这样做:

$("select#lang").css("background-image",
  flagsUrl + $("select#lang").val() + '.png)');
Run Code Online (Sandbox Code Playgroud)

  • 你说得对,js 必须位于 Blade 文件中,而不是单独的 js 脚本中。谢谢! (2认同)