Ich übergebe PHP-Array mit 11 Elementen zu Javascript über Zweig, und es funktioniert gut. Einige Elemente von array sind null, einige sind mehrdimensionale arrays. Das ist mein js Code:Symfony 3 - Javascript Variable an Zweig Asset übergeben
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') }}')";
}
}
Wie Sie mein Skript sehen können, Hintergrundbilder von HTML-Elementen mit bestimmten ID zu ändern, und es funktioniert gut. Das Problem ist, dass ich ändern müssen: ~ slot[1].name ~
zu ~ slot[i-1].name ~
, aber dann wirft Symfony Fehler:
Variable "i" does not exist.
Aber wenn ich ganze Linie zu console.log(slot[i-1].name)
ändern wird der Name Eigenschaft eines perfekt Objekt.
ich auch assign Wert der Variablen versucht, und es dann zu Asset-Pass:
var name = slot[i-1].name;
document.getElementById("slot_" + i).style.backgroundImage = "url('{{ asset('grafiki/' ~ name ~ '.jpg') }}')";
Aber dann Fehler, die ich bekam: Variable "name" does not exist.
ich mit diesem wirklich bin stecken, jemand mir helfen könnte?
Javascript-Variable ist auf der Vorderseite verfügbar. Twig wird im Backend geparst. Sie existieren nicht im selben Kontext. – dmnptr
Warum funktioniert slot [1] .name? Es ist auch Javascript Variable. – Petrus
Es ist keine Javascript-Variable innerhalb dieser doppelten geschweiften Klammern. Haben Sie zufällig eine Zweigvariable 'slot'? – dmnptr