2017-10-17 59 views
0

今天早上我醒来时带着一个愚蠢的问题。你可以把刀片JavaScript变量内:在JavaScript变量中使用刀片

var NoImg = '{{ asset('img/ni-img.png') }}'; 

将输出作为字符串,我需要它来输出图像

+0

是的。刀片服务器是模板引擎。如果你有一个刀片视图文件,她会在javascript之前执行。在你的情况下,当从服务器返回html时,NoImg将具有助手资产()返回的扩展值。 –

+0

你完全可以 - 事实上,我已经使用了这个比Laravel更多的时间。 – Tor

+0

@你是否像我那样做了? – Yosef

回答

0

是的 - 这将直接注入路径到您的图像传送到JS字符串的单引号。

如果您需要,然后使用该字符串作为一个图像,你需要设置一个img.src的路径,像

document.getElementByID('myImage').src = '{{ asset('img/ni-img.png') }}' 
0

是。刀片服务器是模板引擎。如果你有一个刀片视图文件,她会在javascript之前执行。在你的情况下,当从服务器返回html时,NoImg将具有助手资产()返回的扩展值。

这将是做工精细:

<?php 
    // variable from your controller... 
    $image = 'https://images.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png'; 
?> 

// your js inside of a blade file... 
var image = new Image(272, 92); 
image.src = '{{ $image }}'; // or asset("path/to/your/image.png") 
document.body.appendChild(image); 
1

是的,但最好使用json_encode,以确保所得到的输出是JavaScript的友好:

var NoImg = {!! json_encode(asset('img/ni-img.png')) !!}; 

PHP将加了引号(对于字符串),任何必要的转义字符(例如,如果在文件名中有'),并且会处理更复杂的数据结构,如数组/对象。

+1

感谢您的提示我的男人 – Yosef