Javascript 从rails中的不同coffeescript文件调用函数
votable.coffee:Javascript 从rails中的不同coffeescript文件调用函数,javascript,jquery,ruby-on-rails,coffeescript,Javascript,Jquery,Ruby On Rails,Coffeescript,votable.coffee: set_votable_hooks = (vote_area_name) -> ... window.Votable ?= {} window.Votable.set_votable_hooks = (vote_area_name) -> ... 问题.咖啡: vote_area_name = 'xyz' $(document).ready(set_votable_hooks(vote_area_name)) load_votable
set_votable_hooks = (vote_area_name) ->
...
window.Votable ?= {}
window.Votable.set_votable_hooks = (vote_area_name) ->
...
问题.咖啡:
vote_area_name = 'xyz'
$(document).ready(set_votable_hooks(vote_area_name))
load_votable = ->
window.Votable.set_votable_hooks('.question-vote-area')
$(document).ready(load_votable)
我希望在文档就绪时调用该函数。我知道每个coffee文件都放在一个函数中,所以它的内容在其他函数中是不可用的。我读到过这样的解决方案:将set_votable_钩子设置为全局或使用名称空间,但无法管理它们工作,因为我是js新手。但据我所知,首选的解决方案是使用名称空间,以避免污染全局对象。发现,我的第一个错误是将参数分配给回调函数,因此我最终得到: votable.coffee:
set_votable_hooks = (vote_area_name) ->
...
window.Votable ?= {}
window.Votable.set_votable_hooks = (vote_area_name) ->
...
问题.咖啡:
vote_area_name = 'xyz'
$(document).ready(set_votable_hooks(vote_area_name))
load_votable = ->
window.Votable.set_votable_hooks('.question-vote-area')
$(document).ready(load_votable)
并在application.js中重新定义了咖啡文件包含:
...
//= require votable
//= require_tree .
...
不包括votable前一页的最后一步问题