2

要将数据传递到视图中,通用的“作业”设置如下:

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>

我不确定如何传入能够以该标签、值格式读取的哈希(或更广泛地说,集合)。如果有人能指出我正确的方向,我肯定会很感激。我找不到任何有用的文档。

4

2 回答 2

4

不过,文档很有欺骗性,你传入一个带有哈希的数组

这是我使用列表所做的

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) The itemis json formatted but that doesn't work,而是传入一个带有哈希的数组

于 2013-06-19T12:40:03.040 回答
0

免责声明:我没有使用 Dashing(虽然它看起来很有趣)。

从文档:

…<br> send_event('karma', { current: rand(1000) })

该作业将每分钟运行一次,并将向所有 data-id 设置为“业力”的小部件发送一个随机数。

您使用以下方法发送数据:

发送事件(widget_id,json_formatted_data)

因此,对于您的集合,您需要一个哈希数组,每个哈希都有键label,并且value(因为咖啡脚本中对象的实例方法调用(在 Ruby 中)实际上只是哈希上的访问器)。

拥有该集合后,将其转换为 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

我不知道这是否会奏效,但这就是我认为会奏效的方法。希望能帮助到你。

于 2013-03-17T06:48:24.777 回答