Я пытаюсь передать данные из моих представлений haml в javascript. В моем приветственном контроллере у меня есть индексный метод. В моем файле index.html.haml у меня есть следующее:
:javascript
window.putalert = "#{ "Data" }";
и в моем приветствии.js.coffee у меня есть:
jQuery ->
alert putalert
Однако вышеуказанное не работает. Я получаю Uncaught ReferenceError: putalert не определен.
Любые предложения о том, как это решить?
Сообщение об ошибке в chrome-отладке
(function() {
jQuery(function() {
return alert(putalert);
Uncaught ReferenceError: putalert is not defined
});
}).call(this);
Вы можете вставить javascript с помощью тега javascript haml. Вы можете вставить Ruby С# {}. Попробуйте что-то вроде этого:
:javascript
window.putalert = "#{ "Data" }";
Вы даже можете вставить coffeescript в свои представления, если хотите (для этого вам нужно использовать наклон):
:coffee
@putalert = "#{ "Data" }"
Здесь ссылка на фильтры haml: http://haml.info/docs/yardoc/file.REFERENCE.html
:javascript window.putalert = "#{ "Data" }";
не работает. Я все еще получаю Uncaught ReferenceError: ошибка putalert не определена.
Один очень хороший способ обработки данных для JavaScript в целом - использовать атрибуты данных в тегах HTML. Затем, используя что-то вроде jQuery, вы можете вытащить эту информацию. Это немного чище, чем впрыскивать его в js.
Дополнительная информация: http://ejohn.org/blog/html-5-data-attributes/