如何在 Dashing 框架中从 erb 文件进行 ajax 调用?

How to make an ajax call from erb file in Dashing framework?

我想在 erb 文件中动态获取我的变量(ruby 数组)的值。我可以调用 erb 页面中的值,但由于我的工作保持 运行 并且变量的值不断变化,我希望它的变化反映在我的 erb 文件中。

我希望你到目前为止享受 Dashing 体验。

Dashing 的想法是任何事件和大多数动态内容都将 processed/generated 在客户端(浏览器)中。后端知道如何获取数据,前端知道如何显示。

您需要让客户端 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();