我正在构建一个使用javascript的rails应用程序。在我的一个页面上,当dom准备就绪时,我将一个变量定义为一个新的Budget
对象。似乎在创建对象之前设置了变量,并将变量设置为undefined
。我使用资产管道而不是内联javascript,如果这有所不同。知道为什么会这样吗?
这是我在dom准备就绪后设置新变量的行
(@on_dom_ready_functions ||= []) << "window.budget = new Budget(#{@lead.to_json});"
如何创建/使用@on_dom_ready_functions
首先使用domReady函数创建partial。
:javascript
domReady();
function domReady() {
if (!$('dom_ready')) {
setTimeout(domReady, 10);
return;
}
#{@on_dom_ready_functions.join(" ") if @on_dom_ready_functions}
#{"$('\#{@focus}').focus();" unless @focus.blank?}
}
然后我在
的任何页面的底部渲染那个部分= render :partial => 'layouts/dom_ready'
.dom_ready