2011-02-02 79 views
0

我想嵌入一些外部js文件中的一些rails数据,而不是将它放在我的.html.haml脚本标记中。我该怎么做呢?我环顾四周,阅读了.js.erb的东西,但我很难过。我也很困惑,因为我应该使用.rjs。如果这有帮助,我正在使用jquery。谢谢!外部JavaScript文件与嵌入式红宝石

欲了解更多信息,基本上我试图沿着瑞安贝特的railscast http://asciicasts.com/episodes/223-charts,但把所有的图形信息放在外部的js。他提到在加载页面时应该发出ajax请求,但我不是100%如何做到这一点。

到目前为止,我已经尝试做如下:

中的application.js:

$(document).ready(function(){ 
    $.ajaxSetup({ 
     'beforeSend': function (xhr) {xhr.setRequestHeader("Accept", "text/javascript")} 
    }); 
    $.ajax({ type: 'POST', url: '/graphs'}); 
}); 

graphs.js.erb(随机的东西,看看它的工作原理):

$('.some_container').append('hello!'); 
$('h1').append('hello!'); 

这似乎工作,虽然你好在短暂的延迟后出现,我猜嵌入式红宝石也可以工作。然而,如果我开始添加图表的东西到这个.js.erb它停止工作(如data = 1)。也有很多只是有一个动态的js文件。


编辑:“你好的附加在所有的意见,所以我一定是错做的事情:/我只希望它追加到配置文件视图。

回答

0

也许你应该把这个js代码放在一个partial中,并且仍然把它用作html:_myjavascript.html.erb(在你的部分中使用javascript_tag)。

你的名字您的视图myview.js.erb当它应该以一个JS请求(而不是HTML)响应:

respond_to do |format| 
    format.js { render 'myview' } 
end 
+0

我考虑把它在一个局部的那样,但那种失败不必担心所有的选项卡和东西(我使用哈姆),并使HTML代码没有嵌入