要将数据传递到视图中,通用“作业”设置如下:
SCHEDULER.every '1m', :first_in => 0 do |job|
send_event('widget_id', { })
end
在视图中,它按原样处理:
<li data-foreach-item="items">
<span class="label" data-bind="item.label"></span>
<span class="value" data-bind="item.value"></span>
</li>
我不确定如何传入能够以该标签,值格式读取的哈希(或更广泛的集合)。如果有人能指出我正确的方向,我一定会很感激。我找不到任何有用的文档。
答案 0 :(得分:4)
文档非常具有欺骗性,你传入一个带有哈希的数组
以下是我使用List
所做的工作buzz = [{:label=>"Count", :value=>10}, { :label=>"Sort", :value=>30}]
send_event('buzzwords', { items: buzz })
以上是有效的,但如果我执行以下操作:
buzz = [{:label=>"Count", :value=>10}, { :label=>"Sort", :value=>30}]
items = buzz.to_json
send_event('buzzwords', { items: items})
这不起作用,但文档说send_event(widget_id, json_formatted_data)
item
是json格式化但不起作用,而是使用哈希传递数组
答案 1 :(得分:0)
免责声明:我没有使用Dashing(虽然它看起来很有趣)。
来自文档:
...
send_event('karma',{current:rand(1000)})
......此作业将每分钟运行一次,并将随机数发送给ALL 将data-id设置为'karma'的小部件。
您使用以下方法发送数据:
send_event(widget_id,json_formatted_data)
因此,对于您的集合,您需要一个哈希数组,每个哈希都有键label
和value
(因为对coffeescript中的对象的实例方法调用(在Ruby中)实际上只是{ {3}})。
获得该集合后,将其转换为JSON,并将其粘贴到具有访问者items
的对象中,例如
require 'json'
items = [{label: "l1", value: "v1"},{label: "l2", value: "v2"},{label: "l3", value: "v3"}]
json_formatted_items = items.to_json
# => "[{\"label\":\"l1\",\"value\":\"v1\"},{\"label\":\"l2\",\"value\":\"v2\"},{\"label\":\"l3\",\"value\":\"v3\"}]"
SCHEDULER.every '1m', :first_in => 0 do |job|
send_event('widget_id', {items: json_formatted_items })
end
我不知道这是否有效,但这是我认为可行的。希望它有所帮助。