Dashing中的动态小部件

时间:2015-10-13 13:09:48

标签: dashing

我是使用ruby和Coffee脚本的新手,但我已设法在单个小部件中显示数据。

我试图从逻辑上思考如何为集合中的每个条目创建一个小部件。

有人知道如何在调用服务并获取数据集之后创建小部件。

例如:

entries: [
    {
        name: "bob",
        age: 21
    },
    {
        name: "alex",
        age: 42
    },
    {
        name: "fred",
        age: 35
    }
]

我希望能够完成其中的每一项并为每个条目创建一个小部件。这可能吗?

2 个答案:

答案 0 :(得分:1)

这很容易。从您在jobs文件夹中的任何Ruby脚本中,您通常会使用send_event调用更新窗口小部件,如下所示:

send_event(widget.to_s, bus_info)

这将更新相应的小部件。但是,一项工作可以使这个调用尽可能多,因此可以在其运行中更新几十个小部件。您可以遍历列表并为列表中的每个项目运行send_event()。玩它,如果你遇到困难,让我知道,我可以把一个更大的例子放在一起,但希望你可以使用上面的方法让你去。

答案 1 :(得分:1)

这是我们的zendesk小部件集中的一个更完整的示例。

def update_dashing(view, value)
  puts 'sending ' + view + ' : ' + value.to_s
  send_event('zendesk-' + view, current: value, status: 'normal',
                            service: 'Zendesk')
end

def update_zendesk(views)
  counts = zendesk_client.view_counts(ids: views, path: 'views/count_many')
  counts.all do |ct|
    next unless ct.fresh
    update_dashing(ct.view_id.to_s, ct.value.to_i)
  end
end

zendesk_client.view_counts()函数返回一个<view_id>:<count>对的列表,然后我们循环。