2015-09-05 90 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發送重新加載。儘管如此,我還沒有使用或測試,但它看起來很有希望。 –