如何在服务application.js后加载视图中的js

时间:2014-12-17 10:41:45

标签: javascript ruby-on-rails heroku

我在我的rails应用程序中推送到heroku时出现问题。

许多函数变为undefined,因为<%= javascript_include_tags %>之前包含application.js,因此未加载库。

我已经尝试过&#34;推迟&#34;在我的脚本标签中,但没有工作。

它只在生产中发生,而不是在我的开发环境中发生。

如何在我的视图中指定Rails加载最新的?

任何建议都会很棒。感谢

CASE:

我的application.js

//= require jquery
//= require jquery_ujs
//= require jquery.lockfixed
//= require jquery.base64
//= require jquery.browser.mobile
//= require masonry.pkgd.min
//= require_directory ./utils
//= require_directory ./helpers
//= require tabs
//= require pining
//= require list
//= require handlebars
//= require jquery.cookiesdirective
//= require albums
//= require landing
//= require bxslider
//= require landing/waypoints
//= require landing/animate-waypoints
//= require handlebars-truncate-helper
//= require spots

我的观点

<%= javascript_include_tag "call_pining_function" %>

Call_pining_function partial

drawStaticPin();

Heroku错误

Uncaught ReferenceError: drawStaticPin is not defined

由于

1 个答案:

答案 0 :(得分:0)

嗯,我还不完全确定这个案子。我认为

//= require pining

是包含drawStaticPin的文件,对吧? 我在这里可以看到几个选项:

首先,将“call_pining_function”放入application.js

的要求中

其次,如果在jQuery(DOM)准备好之后定义了call_pining_function,可能你可以将函数调用绑定到该事件

jQuery(document).ready(function() {
    drawStaticPin();
};

第三,丑陋,但是假设代码最终会被加载

while (typeof drawStaticPin === "undefined");
drawStaticPin();