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

时间:2016-10-06 10:56:57

标签: javascript jquery laravel

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

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

我想做这样的事情:

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

但这当然不起作用,问题是它是如何看待它是否可以使用。

4 个答案:

答案 0 :(得分:3)

为什么这不起作用?

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

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

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

例如:

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

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

$("select#lang").css("background-image",
  flagsUrl + $("select#lang").val() + '.png)');

答案 1 :(得分:0)

试试这个

 $("select#lang").css("background-image", 'url(/images/flags/'+ $("select#lang").val() + '.png)');

答案 2 :(得分:0)

它没有用,因为你的javascript文件(something.js)没有被PHP解析。这意味着,PHP不会检查JavaScript代码的javascript文件。

虽然您可以在它们之间传递变量。最简单的方法是在您的视图中执行类似的操作(刀片文件):

<script type="text/javascript">
    var url = '{{ URL::asset('/images/flags/') }}'
</script>

在您的javascript中,您现在有一个名为url的全局变量,其中包含您要查找的值,您可以在javascript文件中使用它:

$("select#lang").css("background-image", url + $("select#lang").val() + '.png)');

答案 3 :(得分:0)

如果将图像粘贴到文件夹public / images / abc.png 您可以使用

  

'/ images /'

代替

  

{{URL :: asset('/ images')}}

在您的js文件中。

.blade中的示例:

<img src="{{ URL::asset('/images') }}/abc.png" />

在.js中:

var image = "<img src='/images/abc.png' />";