我想在erb文件中动态获取我的变量(ruby数组)的值。我可以在erb页面中调用该值,但是当我的作业继续运行并且变量的值不断变化时,我希望它的更改能够反映在我的erb文件中。
答案 0 :(得分:0)
我希望你到目前为止享受你的Dashing体验。
Dashing的想法是在客户端(浏览器)中处理/生成任何事件和大多数动态内容。后端知道如何获取数据,前端知道如何显示数据。
您需要使客户端CoffeeScript反映发送到仪表板的更改。因此,您的Ruby作业应该发送一组窗口小部件数据 - 每个元素代表一个窗口小部件。
然后循环遍历数据并在窗口小部件中初始化它。
Batman.js提供了可以循环数据[1]的视图绑定:
<li data-foreach-item="items"><div class="my-awesome-widget></div></li>
您还可以在CoffeeScript onData方法中循环它:
onData: (data) ->
$.forEach data, (widget) =>
@makeMyWidget widget
如果您想根据数据隐藏窗口小部件,可以在onData中执行此操作:
// Ruby Job
send_event('event', { data: the_data, hidden: true })
// Widget CoffeeScript
onData: (data) =>
if(data.hidden)
$(@node).hide();