2

您如何在启动dashing小部件时获取数据以进行轮询?

ready在小部件完成渲染时调用。

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

  onData: (data) ->

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

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

4

1 回答 1

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 }
于 2013-12-18T20:31:25.337 回答