【问题标题】:Which place is best to put my JavaScript in ROR哪个地方最好将我的 JavaScript 放入 ROR
【发布时间】:2013-03-17 07:38:27
【问题描述】:

我的应用结构是这样的

myapp
  app/assets/javascripts/admin/admin.js
  app/controllers/admin/admin_controller.rb
  app/views/admin/new.html.haml
  app/views/admin/new.js.haml

我正在使用一些 ajax 函数来呈现我的表单中的特定内容。 new.js.haml中指定的动作,当调用是js格式时触发。我的admin.js 文件中还有一些其他脚本,这些脚本在此 ajax 调用之后不包括在内。当我将脚本复制并粘贴到 new.js.haml 中时,一切正常。但我不想在我的应用程序中有多余的脚本。如何重新考虑这个?

【问题讨论】:

    标签: javascript ruby-on-rails ruby-on-rails-3 assets actionview


    【解决方案1】:

    您是正确的,复制代码不是一个好主意。至于您将 javascript 文件放在哪里的问题,这并不重要(尽管通常,由于超出您的问题范围的原因,它们位于 app/assets/javascripts)。

    重要的是您从new.js.haml 调用的javascript 函数实际上已经定义,这意味着必须加载javascript 文件。这可以通过在布局中包含 javascript 文件来完成,如下所示:

    <%= javascript_include_tag "admin/admin" %>
    

    在您的主 javascript 文件中定义函数:

    // admin.js
    
    var testFunc = function() {
      console.log('this is a test!')
    };
    

    然后在你的 new.js 文件中调用函数:

    // new.js
    
    testFunc();
    

    无需重新定义您的函数或变量。

    【讨论】:

    • 如何在不重复代码的情况下让我的功能正常工作?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多