虚线仪表板框架将标签和值传递给列表小部件



要将数据传递到视图中,一般的"job"是这样设置的:

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>

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

文档很有欺骗性,你传入一个带有Hash的数组

下面是我如何使用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格式的,但这不起作用,而是传递一个数组与哈希

免责声明:我没有使用过潇洒(尽管它看起来很有趣)。

From the docs:


…Send_event ('karma', {current: rand(1000)})

此作业将每分钟运行一次,并将向ALL发送一个随机数将data-id设置为'karma'的小部件

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

send_event (widget_id json_formatted_data)

因此,对于您的集合,您需要一个哈希数组,每个哈希具有键labelvalue(因为在coffeescript中对对象的实例方法调用(在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

我不知道这是否可行,但我认为这是可行的。

最新更新