Использование переменных JavaScript для хранения выходных данных Ruby из <% =%> - PullRequest
0 голосов
/ 09 января 2019

@tag - это строка.

Почему это работает:

tag_tracker = "<%= @tag %>";
alert(tag_tracker);

Но не это?

tag_tracker = <%= @tag %>; // Why is this not read as a string?
alert(tag_tracker);

Заранее спасибо!

1 Ответ

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

Если у вас есть JS внутри файлов ERB, вам нужно убедиться, что сгенерированный код javacript правильный.

Предположим, что у вас есть строка "div", хранящаяся в @tag

Первый вариант:

tag_tracker = "<%= @tag %>";
alert(tag_tracker);

сгенерирует правильный JS с div, заключенным в кавычки .:

tag_tracker = "div";
alert(tag_tracker);

Второй:

tag_tracker = <%= @tag %>;
alert(tag_tracker);

сгенерирует JS без кавычек вокруг div:

tag_tracker = div;
alert(tag_tracker);

и это неверно, потому что в этом случае div интерпретируется как переменная, а не как строка.

...