Я пытаюсь передать переменную в строку, пока сама строка помещается в существующий массив, например:
var myVar = 'slug';
myArray.push(['item one', '/path/to/' + myVar + '/']);
Это не работает вообще. Я вижу правильное значение, присвоенное myVar
; однако myVar
в массиве даже не распознается как переменная.
Это кажется достаточно легким, но я явно что-то упускаю.
Спасибо за вашу помощь.
РЕДАКТИРОВАТЬ: не проблема Javascript для всех.
Как показала Алекс, это определенно нормально работает. (И да, это существующий массив.)
Однако я не упомянул, что метод push обернут в логику шаблонной логики Django, чтобы он запускался только на моем экземпляре dev, например, так:
{% ifequal INSTANCE 'DEVELOPMENT' %]
myArray.push(['item one', '/path/to/' + myVar + '/']);
{% endifequal %}
Я не упомянул логику, потому что не видел, как она может мешать. Я подтвердил, что:
- все с логикой велось как ожидалось
- МОМЕНТ фактически равнялся «РАЗВИТИЮ»
- и эта строка Javascript была видна в источнике, что было бы не так, если бы логика работала неправильно.
Однако, если я уберу эту логику Django, все с Javascript будет работать так, как нужно.
По какой-то причине эта логика на стороне сервера не позволяет мне передавать любые внешние значения в массив, на стороне клиента или сервера.
В качестве эксперимента я попробовал это ...
myArray.push(['item one', '/path/to/{{ block slug }}undefined{{ endblock }}/']);
... со следующим в дочернем шаблоне.
{{ block slug }}slug{{ endblock }}
То же самое происходит. При установленной логике шаблона значение равно /path/to/undefined
. Без него значение /path/to/slug
по желанию.
Почему это происходит, для меня загадка. Я могу обойти это, но если у кого-то есть мысли, я бы хотел их услышать.
Еще раз спасибо.
Вопрос со стороны Noob: что ТАКОГО этикета об изменении заголовков сообщений?