11要素のPHP配列をtwig経由でjavascriptに渡していて、うまくいきます。配列のいくつかの要素はnullであり、いくつかは多次元配列です。これは私のjsのコードです:Symfony 3 - 枝の資産に渡すJavaScript変数
var slot = {{ slot|json_encode|raw }};
for(var i = 1; i<= 11; i++) {
if (slot[i - 1] === null) {
document.getElementById("slot_" + i).style.backgroundImage = "url('{{ asset('grafiki/empty.jpg') }}')";
}
else {
document.getElementById("slot_" + i).style.backgroundImage = "url('{{ asset('grafiki/' ~ slot[1].name ~ '.jpg') }}')";
}
}
あなたが見ることができるように、私のスクリプトは、特定のIDを持つHTML要素の背景画像を変更され、それが正常に動作します。 問題は、私は変更する必要があることです。~ slot[i-1].name ~
へ~ slot[1].name ~
を、その後symfonyはエラーがスローされます:
Variable "i" does not exist.
しかし、私はconsole.log(slot[i-1].name)
に行全体を変更すると、それは完全にオブジェクトのnameプロパティを示しています。
私はまた、変数に割り当てる値を試してみましたが、その後、資産に渡し:
var name = slot[i-1].name;
document.getElementById("slot_" + i).style.backgroundImage = "url('{{ asset('grafiki/' ~ name ~ '.jpg') }}')";
しかし、その後、私はエラーだ:Variable "name" does not exist.
を私は本当に、このいずれかにこだわって誰が私を助けることができますか?
Javascript変数は表側にあります。 Twigはバックエンドで解析されています。彼らは同じ文脈に存在しません。 – dmnptr
次に、slot [1] .nameがなぜ機能するのですか?これはjavascript変数でもあります。 – Petrus
二重の中括弧の中のjavascript変数ではありません。 twig変数 'slot'を持っていますか? – dmnptr