Невозможно получить доступ к переменной, объявленной вне цикла For (Javascript) - PullRequest
0 голосов
/ 20 января 2019

Я просто не могу получить доступ к переменной, объявленной вне цикла For в Javascript.Цикл For находится внутри свойства объекта, которое находится внутри функции и используется для рисования диаграммы с использованием Chart.Js.

Есть ли обходной путь для этого?

Вот код:

function chart1Update() {

var string = "['text1', 'text2', 'text3', 'text4']"

// bar chart data

var barData = {
labels : [
{% for item in string %} // <==== THE PROBLEM IS RIGHT HERE (string) <====
"{{ item }}",
{% endfor %}
],
datasets : [{
fillColor: "rgba(151,187,205,0.2)",
strokeColor: "rgba(151,187,205,1)",
pointColor: "rgba(151,187,205,1)",
data : [
{% for item in ['1499', '1554', '1661', '1658'] %}
"{{ item }}",
{% endfor %}
]
}
]
}

1 Ответ

0 голосов
/ 20 января 2019

{% for item in string %} не похоже на JavaScript. это какая-то рубиновая штука или что-то? Он ищет переменную string, определенную на любом языке, не являющемся javascript, из которого поступает тег, и ее неопределенную или неинициализированную, поскольку он не имеет доступа ни к каким переменным javscript.

Если вы сделаете его массивом JS (вместо объявления массива внутри строки, как оно есть в настоящее время), вы можете просто назначить массив js напрямую, даже не зацикливаясь, т.е.

var string = ['text1', 'text2', 'text3', 'text4']; //no double quotes on the outside
var barData = {
labels : string,
//...

Причина, по которой ваш цикл data работает, заключается в том, что переменная, литерал массива, определена внутри тега, поэтому она имеет к ней доступ.

...