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) Theitemはjson形式ですが、機能しないと記載されています。代わりに、ハッシュを使用して配列を渡します。

于 2013-06-19T12:40:03.040 に答える
0

免責事項:私はダッシュを使用していません(非常に興味深いように見えますが)。

ドキュメントから:

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

このジョブは毎分実行され、data-idが「karma」に設定されているすべてのウィジェットに乱数を送信します。

次の方法を使用してデータを送信します。

send_event(widget_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

それがうまくいくかどうかはわかりませんが、それがうまくいくと思います。それが役に立てば幸い。

于 2013-03-17T06:48:24.777 に答える