从 rails 中的不同 coffeescript 文件调用函数

Call function from different coffeescript file in rails

本文关键字:coffeescript 文件 调用 函数 rails      更新时间:2023-09-26

votable.coffee:

set_votable_hooks = (vote_area_name) ->
  ...

问题.咖啡:

vote_area_name = 'xyz'
$(document).ready(set_votable_hooks(vote_area_name))

我希望在文档就绪时调用函数。我知道每个咖啡文件都放在一个函数中,因此它的内容在其他函数中不可用。我已经读到解决方案是使set_votable_hooks全局或使用命名空间,无法管理它们以工作,因为我是 js 的新手。但据我了解,首选解决方案是使用命名空间,以免污染全局对象。

发现

,首先我的错误是分配给带有参数的回调函数,所以我最终得到:

可投票咖啡:

window.Votable ?= {}
window.Votable.set_votable_hooks = (vote_area_name) ->
  ...

问题.咖啡:

load_votable = ->
  window.Votable.set_votable_hooks('.question-vote-area')
$(document).ready(load_votable)

并在应用程序中重新定义了咖啡文件包含.js:

...
//= require votable
//= require_tree .
...

在可投票之前,页面上不包含最后一步的问题