【发布时间】:2015-10-31 18:00:19
【问题描述】:
因为我想在咖啡文件中执行 Rails 代码,所以我将脚本文件命名为“picture.coffee.erb”,它看起来像这样:
drawDots = (x) ->
canvas = document.getElementById 'picture'
context = canvas.getContext '2d'
drawDot(context, i['dim_x'], i['dim_y']) for i in x[0]
$ ->
drawDots [<%= raw Dot.all.to_json %>]
当我第一次执行这段代码时,一切都很好。但是,当我进行一些更改(例如添加一些新点)时,我的视图不会“刷新”并且我仍然看到旧数组,直到我要对我的咖啡文件进行一些更改。然后我可以看到我的观点发生了一些变化……但这有点不可预测。 每次网站刷新时如何让这段代码刷新?
我已经试过了 window.onload = -> 或 document.ready -> 只需 $ ->
【问题讨论】:
-
我相信这是 Safari 试图更有效,因为当我对我的 coffee.erb 文件进行一些更改时,我的数据会刷新......但是......当我要 ctrl+z 这个文件时该网站似乎及时回到了我的 Dots 所在的“旧版数据库”。 ;> 如何让浏览器在每次加载时刷新此脚本?
-
您确定您的服务器在每次请求时都重新编译 CoffeeScript 吗?服务器无法知道
picture.js依赖于您的整个dots表。如果您的页面发出单独的 AJAX 请求来加载点,我认为您会过得更好。 -
不幸的是,你是对的 .. 我使用了 Gon gem .. 它解决了这个特殊问题,但现在我需要通过 CoffeeScript 将一些值传递给服务器 .. AJAX 会是更好的解决方案.谢谢你的消息。
标签: ruby-on-rails json coffeescript erb