带有Flot的Rails 3.1简洁Javascript
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了带有Flot的Rails 3.1简洁Javascript,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1759字,纯文字阅读大概需要3分钟。
内容图文
所有,
我在Rails应用程序中使用Flot图形库.我目前有一个按预期工作的页面,但是用于将flot图放在一起的所有javascript都是内联在我的“ view” .html.erb文件中.
是否有一种简单的方法可以将javascript的静态部分移动到外部文件,在视图/控制器中按常规生成动态数据并将其传递到javascript文件? (通过“数据消息”?)
基本布局如下所示:
控制器:
@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 ....
解决方法:
为了解决这个问题,我要做的就是将flot脚本移到Portfolios.js文件中.然后,我绑定了一个click事件以生成flot图.在anchortab中,我输入这样的内容
<a id="generate" data-var="<%=@portfolo_data%>" data-var="<%=@portfolo_options%>">Generate Graph</a>
然后在js文件中,我像这样拉了电话
$(function (){
$("#generate").click( (event) {
event.preventDefault();
eval("var data =" + $("#generate").data("var") + ";");
eval("var options =" + $("#generate").data("options") + ";");
$.plot($("#select"), data, options);
});
});
剩下要做的就是在Portfolio Controller中构建@portfolio_data和@portfolio_options字符串.
内容总结
以上是互联网集市为您收集整理的带有Flot的Rails 3.1简洁Javascript全部内容,希望文章能够帮你解决带有Flot的Rails 3.1简洁Javascript所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。