我对这个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>
答案 0 :(得分:0)
这就是Dashing的工作原理。在您第一次运行它之前,小部件的数据不会输入。
为什么不在“SCHEDULER.every ...”之前先流式传输数据?这应该首先设置小部件,并等待新数据的下一次计划刷新。