【问题标题】:Rails 4 calling a CoffeeScript function from a .js.coffee viewRails 4 从 .js.coffee 视图调用 CoffeeScript 函数
【发布时间】:2014-04-17 15:14:48
【问题描述】:

我有一点问题,我是一个真正的 JS 和 CS 菜鸟,但似乎正在慢慢到达那里。

我有一个应用程序必须维护一些非常复杂的 JS 对象,我通过使用 CS 类等来做到这一点。让我摸不着头脑的事情如下:

我有我的控制器特定的 .js.coffee

foos.js.coffee

@addFoo(foo_id) ->
    #logic to instantiate foos
    #and add maintain data structures

@removeFoo(foo_id) ->
    #logic to remove foos
    #and maintain datastructures

这在我的创建视图中有效

foos/create.js.coffee

@addFoo <%= raw @foo_id %>

$("#sidebar").html ""
$("<%= escape_javascript(render 'shared/sidebar') %>").appendTo "#sidebar"

但反过来在 destroy.js.coffee 中不起作用

foos/destroy.js.coffee

@removeFoo <%= raw @foo_id %>

$("#sidebar").html ""
$("<%= escape_javascript(render 'shared/sidebar') %>").appendTo "#sidebar"

有人能解释一下这是为什么吗?

编辑 1

奇怪的是,这突然开始起作用了。我尝试重新启动服务器,多次清除缓存,甚至尝试完全关闭系统。然后,奇迹般地,经过大约 4 或 5 次失败的尝试,它开始起作用。

是否有人对 rails/CoffeeScript 有过类似的问题,我可以采取什么措施来避免将来发生这种事情?

【问题讨论】:

  • 什么是反向不起作用?
  • 抱歉让我在销毁视图中添加代码

标签: javascript jquery ruby-on-rails ruby-on-rails-4 coffeescript


【解决方案1】:

这只是在黑暗中的一个镜头......但你可以考虑未来

你的情况让我想起了一件让我非常失望的事情,我认为这值得一提。我切换到 Sublime Text,如果你(不小心)按了 cmd+B,你的 CoffeeScript 将编译为一个 Javascript 文件,并且这两个文件都将存在于你的 rails 目录中。然后继续,调用您认为已删除的代码,或多次调用处理程序。各种奇怪的行为。

我希望它可以为您节省一些挫败感!

【讨论】:

  • 谢谢,我实际上也使用了 Sublime Text,所以知道这一点很有用。但是没有任何迹象表明资产编译。真正的挠头
猜你喜欢
  • 2016-09-25
  • 2012-01-07
  • 1970-01-01
  • 1970-01-01
  • 2020-08-29
  • 2012-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多