【问题标题】:Pupulate Dom HTML fom JSON and coffeescript从 JSON 和 coffeescript 填充 Dom HTML
【发布时间】:2016-06-27 21:17:29
【问题描述】:

我对咖啡脚本很陌生。

我正在为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"}]}

【问题讨论】:

    标签: javascript jquery json coffeescript


    【解决方案1】:
    refreshFrequency: 5000
    

    这不是你分配变量的方式:

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

    2. 在 Object 中分配项目是使用 : 完成的,即:

      my_object = 
           refreshFrequency: 5000
      

    您已经多次重复此错误 ;-) 请注意,您使用= 进行函数分配,因此render: -&gt; 也是错误的,需要为render = -&gt;


    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 行在新的缩进级别上?新块的开始不应该在新的缩进级别上,只有它的内容。

    您的脚本也以innerHTML = 结尾,这是不正确的。


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

    【讨论】:

    • 太棒了!这有很大帮助。我了解 = 如何为变量赋值,但对于这个特定问题,这就是为 Ubersicht 制作小部件的方式。我不知道为什么循环不需要缩进,但是当我编译为 javascript 时,它真的很容易看到。感谢您的帮助!
    猜你喜欢
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-03
    相关资源
    最近更新 更多