All
Я использую библиотеку графиков Flot в своем приложении rails. В настоящее время у меня есть страница, работающая, как и ожидалось, однако весь javascript для составления графа flot встроен в мой файл "view" .html.erb.
Есть ли простой способ переместить статическую часть javascript во внешний файл, сгенерировать динамические данные как обычные в view / controller и передать их в файл javascript? (через «data-message» ??)
Базовая раскладка выглядит следующим образом:
Контроллер:
@portfolios = # a bunch of portfolios
Вид:
<script type="text/javascript">
jQuery(document).ready(function($) {
// show & hide some stuff
var options = {
.......
};
// THIS IS THE DYNAMIC PORTION
var portfolio_collection = []
var id_lookup = []
<% @portfolios.each do |portfolio| %>
<% attribute1 = portfolio.attribute1 %>
<% attribute2 = portfolio.attribute2 %>
portfolio_collection.push([<%= attribute1 %>,<%= attribute2 %>]);
id_lookup.push([<%= portfolio.id %>]);
<% end %>
// END DYNAMIC
var plot = $.plot( // This is the plot command, puts graph in #select div
$("#select"),
[ { data: portfolio_collection, label: "Return"} ],
options
);
// A SCHWACK OF JAVASCRIPT
........
</script>
<h1>My HTML content...</h1>
<br />
<div id="select" style="width:600px;height:300px;"></div>
.... a bunch of other divs which renders javascript results from clicking on the graph ....