2017-10-17 9 views
0

私は今朝、愚かな質問で目を覚ましました。あなたはJavaScript変数内刃を入れることができます:JavaScript変数内で​​ブレードを使用

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

文字列として出力するであろうが、私が必要とするすべては、それが出力する画像

+0

はい。ブレードはサーバー側のテンプレートエンジンです。ブレードビューファイルをお持ちの場合、彼女はJavaScriptの前に実行されます。あなたのケースでは、NoImgは、htmlがサーバから返されたときにhelper asset()によって返された展開された値を持ちます。 –

+0

あなたはまったくできます - 実際に私はLaravelで認めることを気にする以上にこの回数を使いました。 – Tor

+0

@トルと同じようにしましたか? – Yosef

答えて

0

うんである - 直接あなたのJSにあなたのイメージへのパスを注入します文字列の一重引用符。

あなたがイメージとしてその文字列を使用するために必要な場合は、

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

はいのように、パスにimg.srcを設定する必要があると思います。ブレードはサーバー側のテンプレートエンジンです。ブレードビューファイルをお持ちの場合、彼女はJavaScriptの前に実行されます。あなたのケースでは、NoImgは、htmlがサーバから返されたときにhelper asset()によって返された展開された値を持ちます。はい

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

が、それは結果の出力ではJavaScriptフレンドリーれていることを確認するためにjson_encodeを使用するのが最善です:

これは細かい作業になります

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

PHPは、(引用符を追加します任意のエスケープ文字(たとえば、ファイル名に'がある場合)、配列/オブジェクトなどのより複雑なデータ構造も処理します。

+1

チップのためにありがとう私の男 – Yosef

関連する問題