Dashing:Widget在加载/重新加载时未更新,直到作业刷新数据(CSS Transition not initilized)

时间:2015-10-26 10:03:43

标签: html css3 sass css-transitions dashing

我对这个html / coffee / scss的东西一无所知。 (红宝石还可以) 我在这里使用这个热门列表小部件:https://gist.github.com/andre-morassut/8705385 它可以工作但是当在浏览器中加载/重新加载页面时,我得到空的小部件,直到再次运行作业。通常,数据应该是可用的。 “more-info”字段也由同一作业设置,从开始就可见。 我真的很感激一些帮助。我的工作目前每分钟安排一次,但我希望每小时更新一次(由于在工作中运行的服务器查询)

我想,这是scss中这个转换内容的问题?我不需要过渡。

提前致谢

我的工作看起来像

jQuery.ajax

hotlist.coffee看起来像

    sendEventData(Buildbot.getBuildData(BUILDBOTCFG, 'clang'), 'clang')
    sendEventData(Buildbot.getBuildData(BUILDBOTCFG, 'gcc'), 'gcc')

    #...


    def sendEventData(myData, eventHandler)
      itemarray = [
      #{label: 'at', value: 'result'},
        {label: (myData[:current][:end] == nil) ? myData[:current][:start] : myData[:current][:end], value: myData[:current][:state]},
       {label: (myData[:previous][:end] == nil) ? myData[:previous][:start] : myData[:previous][:end], value: myData[:previous][:state]}
      ];

    case myData[:current][:state]
      when 'successful'
        heat = 1
      when 'pending'
        case myData[:previous][:state]
      when 'successful'
        heat = 1
      else
        heat =10
      end
      else
        heat = 10
      end

    datastruct = {
     items: itemarray,
     hotnessvalue:heat  
    }

    send_event(eventHandler, datastruct)
    send_event(eventHandler, {moreinfo: 'Current BuildNo ' + myData[:current][:revisions].to_s})
    end

hotlist.hmtl

    class Dashing.Hotlist extends Dashing.Widget
      ready: ->
        if @get('unordered')
          $(@node).find('ol').remove()
        else
          $(@node).find('ul').remove()

      onData: (data) ->
       node = $(@node)
       value = parseInt data.hotnessvalue
       cool = parseInt node.data "cool"
       warm = parseInt node.data "warm"
       level = switch
        when value <= cool then 0
        when value >= warm then 4
       else 
         bucketSize = (warm - cool) / 3 # Total # of colours in middle
         Math.ceil (value - cool) / bucketSize

      backgroundClass = "hotness#{level}"
      lastClass = @get "lastClass"
      node.toggleClass "#{lastClass} #{backgroundClass}"
      @set "lastClass", backgroundClass   

SCSS

    <h1 class="title" data-bind="title"></h1>

    <ol>
     <li data-foreach-item="items">
      <span class="label" data-bind="item.label"></span>
      <span class="value" data-bind="item.value"></span>
     </li>
    </ol>

<ul class="list-nostyle">
  <li data-foreach-item="items">
    <span class="label" data-bind="item.label"></span>
    <span class="value" data-bind="item.value"></span>
  </li>
</ul>

<p class="more-info" data-bind="moreinfo"></p>
<p class="updated-at" data-bind="updatedAtMessage"></p>

1 个答案:

答案 0 :(得分:0)

这就是Dashing的工作原理。在您第一次运行它之前,小部件的数据不会输入。

为什么不在“SCHEDULER.every ...”之前先流式传输数据?这应该首先设置小部件,并等待新数据的下一次计划刷新。