我的应用程序结构如下所示
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格式时触发。在这个ajax调用之后,我的admin.js
文件中还包含了一些其他的脚本。当我在new.js.haml中复制并粘贴脚本时,一切正常。但我不想在我的应用程序中有多余的脚本。如何对其进行重构?
发布于 2013-03-27 17:20:29
你是对的,复制你的代码不是一个好主意。至于将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();
不需要重新定义函数或变量。
https://stackoverflow.com/questions/15655196
复制相似问题