2017-10-17 3 views
0

Ich wachte heute Morgen mit einer dummen Frage auf. Können Sie in einem JavaScript-Variable setzen Klinge:Verwenden Sie Blade innerhalb einer JavaScript-Variablen

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

dass ausgibt als String, alles was ich brauche ist es ein Bild

+0

Ja. Blade ist eine serverseitige Vorlagen-Engine. Wenn Sie eine Blade-View-Datei haben, wird sie vor dem Javascript ausgeführt. In Ihrem Fall wird NoImg den erweiterten Wert vom Helfer-Asset() zurückgegeben, wenn der HTML-Code vom Server zurückgegeben wird. –

+0

Das kannst du durchaus - tatsächlich habe ich das öfter benutzt, als ich in Laravel zugeben will. – Tor

+0

@Tor hast du es genauso gemacht wie ich? – Yosef

Antwort

0

Yep zur Ausgabe -, die den Weg zu Ihrem Bild in Ihre JS direkt injizieren einfache Anführungszeichen der Zeichenfolge

Wenn Sie benötigen, um dann diese Zeichenfolge als ein Bild zu verwenden, müssen Sie ein img.src auf den Weg zu bringen, wie

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

Ja. Blade ist eine serverseitige Vorlagen-Engine. Wenn Sie eine Blade-View-Datei haben, wird sie vor dem Javascript ausgeführt. In Ihrem Fall wird NoImg den erweiterten Wert vom Helfer-Asset() zurückgegeben, wenn der HTML-Code vom Server zurückgegeben wird.

Dies wird die Arbeit in Ordnung sein:

<?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

Ja, aber es ist am besten json_encode zu verwenden, um sicherzustellen, dass die resultierende Ausgabe ist JavaScript freundlich:

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

PHP wird die Anführungszeichen hinzufügen (für Strings), alle notwendigen Escaping-Zeichen (wenn Sie beispielsweise einen ' in Ihrem Dateinamen haben) und komplexere Datenstrukturen wie Arrays/Objekte ebenfalls behandeln.

+1

Danke für den Tipp mein Mann – Yosef

Verwandte Themen