我使用基于ruby的Dashing框架构建了一个仪表板,所有内容似乎运行良好,但我希望能够更改其中一个List小部件的背景颜色( mywidget )基于列表中的一个值。
我的updatelist.rb作业文件目前看起来像是:
hashdata = Hash.new({ value: 0 })
SCHEDULER.every '10s' do
File.open('xxx.txt').each do |line|
field = line.split(;).first
value = line.split(;).last
if ['Status', 'Active', 'Duration].include? field
hashdata[field] = { label: field, value: value }
end
end
send_event('mywidget', { items: hashdata.values })
end
它正在阅读的文件( xxx.txt )的格式如下:
Status; Good
Active; No
Duration; 1000
我想根据状态值更改列表小部件的背景颜色,即Good = green,Average = yellow,Poor = red。
我该怎么做?在咖啡脚本中添加一些东西似乎是明显的解决方案,但我无法看到如何实现它
答案 0 :(得分:1)
你在coffeescript中需要代码是正确的。我建议如下:
class Dashing.List extends Dashing.List
color: () ->
data = @get('items')
status = # code to process color from your data (I'm not sure exactly your format)
switch status
when "Good" then "#33cc33" # green
when "Average" then "#ffff00" # yellow
when "Poor" then "#ff0000" # red
else "#000000"
onData: (data) ->
# change the background color every time that new data is sent
$(@get('node')).css 'background-color', @color()