2015-09-05 53 views
0

如何在Dashing中动态删除工作(rb)中的窗口小部件?Dashing - 动态删除窗口小部件

我动态构建仪表板由数据发送给ERB文件:

<div class="gridster"> 
    <ul> 
    <% settings.servers.each do |data| %> 
     <li data-row="1" data-col="1" data-sizex="1" data-sizey="1"> 
     <div data-id="<%=data['webHost']%>" data-title="<%=data['name']%>" data-version="<%=data['Version']%>" > 
     </li> 
    <% end %> 
</div> 
+0

ERB仅在页面加载时呈现一次。您必须通过Dashing JavaScript所维护的EventSource连接来更新小部件。另外,您必须通过send_event发送更新。 – tylermauthe

+0

我通过send_event发送更新推送数据。但我怎么能发送“删除”事件小部件? – lielran

+0

这是什么类型的小部件?您是否能够以这种方式添加服务器而无需重新加载页面? – tylermauthe

回答

0

是。我写了一个简单的例子,一份能做到这一点的位置: http://www.mapledyne.com/ideas/2015/6/30/delete-a-dashing-dashboard-widget

你基本上只是想操纵西纳特拉:: Application.settings.history变量,但在该链接的代码应该让你最的方式你想成为的地方。

或跳过后,去右要点文件: https://gist.github.com/mapledyne/6fb671c17c3f865309f3#file-delete-widget-rb

您还可以生成再培训局的部分动态,如果你不知道摆在首位(更复杂)的小工具,但它从相同的开始 - 利用相同的历史变量。

+1

之前我提交这个问题,我找到你的博客文章,也试过了。它会在重新加载页面(Ctrl + R)后删除小部件。 – lielran

+0

lielran - 使用历史变量,小部件数据立即被移除,但是如果仪表板处于启动状态,它可能并不明显,因为没有发送给仪表板的此更改通知。刷新页面可以解决这个问题(并且在功能上,我们依赖于它,因为它适用于我们如何使用我们的动态仪表板)。其他人解决了这个问题,并将其放在要点上:https://gist.github.com/jwalton/6616670从Dashing发送重新加载。尽管如此,我还没有使用或测试,但它看起来很有希望。 –