Я пытаюсь передать данные с контроллера на javascript. Это, как вы это делаете,Передача нескольких переменных для рендеринга json в rails cotroller
respond_to do |format|
format.html
format.json { render json: {data: @data} }
end
А затем в файле просмотра, вы должны сделать это:
<%= javascript_tag do%>
window.data = <%= raw @data.to_json %>
<%end%>
<script>
for(i = 0; i < data.length; i++) {
alert(data[i]);
}
</script>
имеет смысл. Правильно?
Однако код выше, когда вы передаете только одну переменную в json-коде, т.е. переменную данных. Что мне нужно сделать, так это передать несколько переменных в код javascript.
Это должно быть сделано как:
respond_to do |format|
format.html
format.json { render json: {data: @data, data1: @data1, data2: @data2} }
end
Теперь - Как я должен получить доступ к переменным data1 & data2 в моем файле зрения? - Нужно ли мне изменять window.data? Я попробовал код ниже, но это не сработало. Дала мне ошибку аргумента.
<%= javascript_tag do%>
window.data = <%= raw @data.to_json, @data1.to_json %>
<%end%>
Любые провода будут оценены.
Cheers!
Спасибо за ваш ответ. Однако я боюсь сказать вам, что я не могу увидеть ожидаемый результат. Я сделал именно то, что вы меня просили, но выполнение 'alert window.data' дает мне значение null в моем javascript. –
Вам нужно будет создать 'all_data' в вашей рубиновой модели, если вы покажете свою модель, я могу попытаться обновить ... – hagope
Интересно. Хотя, если я передаю одну переменную, мне не нужно ничего создавать. Как добавить его в модель btw? –