在Dashing Widget的Coffeescript中的“ready”上加载数据

时间:2013-10-28 00:40:59

标签: javascript ruby coffeescript shopify dashing

如何在启动dashing窗口小部件时获取数据?

readycalled when the widget is done being rendered

class Dashing.Tagcloud extends Dashing.Widget
  ready: ->

  onData: (data) ->

我构建的小部件使用D3来显示数据。在初始加载时,窗口小部件为空。连续事件轮询将填充D3小部件。所有其他小部件都会尽早获取数据。有没有办法触发立即查询数据?

在第一次运行时调用D3和/或jQuery是否还没准备好?

1 个答案:

答案 0 :(得分:3)

您可以在窗口小部件的标记中隐藏DOM元素中发出数据:

<ul style="display: hidden" data-foreach-item="items">
  <li>
    <span class="name" data-bind="item.name"></span>
    <span class="count" data-bind="item.count"></span>
  </li>
</ul>

然后从DOM收集数据:

tagData = ->
  items = $(@node).find('ul.items li')
  for i in items
    name = $(i).find('span.name').text()
    count = parseInt $(i).find('span.count').text()
    { name: name, count: count }