Dashing Dashboard Framework Передача метки и значения виджету списка

Чтобы передать данные в представление, общее «задание» настроено следующим образом:

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>

Я не уверен, как передать хеш (или, в более широком смысле, коллекцию), который можно прочитать в этом формате метки и значения. Если бы кто-то мог указать мне в правильном направлении, я был бы признателен. Я не могу найти никакой полезной документации.


person user2111743    schedule 13.03.2013    source источник


Ответы (2)


Отказ от ответственности: я не использовал Dashing (хотя это выглядит довольно интересно).

Из документов:


send_event('karma', { текущий: rand(1000) })

Это задание будет выполняться каждую минуту и ​​будет отправлять случайное число ВСЕМ виджетам, для которых идентификатор данных установлен на «карма».

Вы отправляете данные, используя следующий метод:

send_event (id_виджета, json_formatted_data)

Итак, для вашей коллекции вам нужен массив хэшей, каждый хэш имеет ключи label и value (поскольку вызовы методов экземпляра объекта в 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

Я не знаю, сработает ли это, но я думаю, что это сработает. Надеюсь, поможет.

person iain    schedule 17.03.2013

Документация довольно обманчива, вы передаете массив с помощью Hash

Вот что я сделал, чтобы использовать список

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, но это не работает, вместо этого передается массив с хэшем

person Joseph    schedule 19.06.2013
comment
этот ответ был самым полезным. Я провел некоторое время, пытаясь понять, почему мой идеально отформатированный файл json на самом деле не попадал в мою панель управления... оказывается, это массив хэшей. Внес изменение, и бац, оно волшебным образом сработало. - person petemyron; 05.02.2014
comment
Я в том же рассоле, у вас случайно нет образца git, который я могу просмотреть? У меня есть файл lib/.rb с моими хэшами, которые я хочу использовать в заданиях. Но не названы в одной и той же намакультуре (метка, значение). Скорее метка времени, верх, низ, среднее со значениями, так как я строю многолинейную диаграмму. - person Gary Wallen; 01.05.2016