如何在application.js
文件中运行来自.js.erb
的函数?我宁愿不必复制所述函数。
应用程序/资产/ Javascript角/ application.js中
$(document).on('pagecontainershow', function() {
var someFunction = function() {
function someOtherFunction() {
console.log('Hello world')
}
}();
});
应用程序/视图/物品/ create.js.erb
<% unless @article.errors.any? %>
someFunction.someOtherFunction();
<% end %>
答案 0 :(得分:0)
rails创建的默认application.js
中有一条评论
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// compiled file.
我可以处理此问题的方法是将您的代码移至另一个js文件functions.js
,然后记下您在application.js
中引用它们的顺序。在使用这些功能的任何其他文件之前,应首先要求functions.js
。在你的情况下,你可以有像
的application.js
//= require jquery
//= require jquery_ujs
//= require functions
//= require_tree .
您现在应该可以在create.js.erb
答案 1 :(得分:0)
正如我在评论中提到的那样,您需要将功能分开,或者需要调用包含这些功能的on change事件。试试这个:
function someotherfunction(){
console.log("Hello");
}
function somefunction(){
someotherfunction();
// your logic
}
$(document).on('pagecontainershow', function(){
somefunction();
});
<% unless @article.errors.any? %>
someFunction();
<% end %>
答案 2 :(得分:0)
我最终使该函数成为一个全局jQuery函数,现在效果很好: