Pupulate Dom HTML由JSON和coffeescript组成

时间:2016-03-12 16:38:36

标签: javascript jquery json coffeescript

我对咖啡脚本很新。

我正在为Ubersicht

构建一个小部件

According to the documentation,我需要指定一个命令,一个更新间隔和一些样式

到目前为止,我已经能够调整其他现有的小部件,但是在尝试创建自己的小部件时,我遇到了障碍。

我想迭代一个JSON数组并填充一个表。

我已尝试按照此处的示例进行操作:

How to iterate through JSON hash with coffeescript

但我不明白我做错了什么。 dom检查员抛出一个错误,说有一个意外的缩进。我一整夜都试图解决这个问题。请帮忙。

# ######################
# index.coffee
#######################

refreshFrequency: 5000

style: """
  white1 = rgba(white,1)
  white05 = rgba(white,0.5)
  white02 = rgba(white,0.2)
  black02 = rgba(black,0.2)
  icon-size = 28px

  //bottom 220px + 49
  //right 0px
  overflow hidden

  @font-face
    font-family Helvetica Neue

  .user_data
    color white1
    white-space nowrap
    width 176px
    padding 8px 0
    align-items center
    display flex

  .text, 
    font-size 8pt
    font-weight 200
    color white1
    text-overflow ellipsis


"""

todayfile = '~/Desktop/today.txt'

command: "cat #{todayfile}"

render: -> """

    <table class="user_data text"><br>
    </table>

"""

update: (output, domEl) ->
    dom = $(domEl)
    data = JSON.parse output
    alloc = data?.name?.user_name?.allocated_hours
        for keys, values of data
        text = '<tr><td>' + data.name[i] + '</td></tr>' + '<tr><td>' + data.user_name[i] + '</td></tr>' + '<tr><td>' + data.allocated_hours[i] + '</td></tr>'
        dom.find(".user_data").innerHTML =

和JSON文件

{"results":[{"user_id":"63","user_name":"blueboy","name":" (Super Man)","allocated_hours":"7"},{"user_id":"510","user_name":"allblack","name":" (Batman)","allocated_hours":"7"},{"user_id":"418","user_name":"ladyinred","name":" (Wonder Woman)","allocated_hours":"8"}]}

1 个答案:

答案 0 :(得分:0)

refreshFrequency: 5000

这不是你如何分配变量:

  1. 变量赋值为=,即refreshFrequency = 5000

  2. 使用:完成对象中的项目分配,即:

    my_object = 
         refreshFrequency: 5000
    
  3. 您已经多次重复此错误;-)请注意,您使用=进行功能分配,因此render: ->也是错误的,需要render = -> 1}}。

    update功能的缩进已关闭:

    update: (output, domEl) ->
        dom = $(domEl)
        data = JSON.parse output
        alloc = data?.name?.user_name?.allocated_hours
            for keys, values of data
            text = '<tr><td>' + data.name[i] + '</td></tr>' + '<tr><td>' + data.user_name[i] + '</td></tr>' + '<tr><td>' + data.allocated_hours[i] + '</td></tr>'
        dom.find(".user_data").innerHTML =
    

    为什么行for keys, values of data处于新的缩进级别?新块的 start 永远不应该在新的缩进级别上,其内容。

    您的脚本也会以innerHTML =突然结束,这是不正确的。

    一旦我修正了上面的错误,编译的文件;-)这当然不能保证它也能做你想要的;-)我真的不能理解脚本,因此,似乎更像是半个剧本...