Crafty.js没有使用CoffeeScript显示正确的响应

时间:2013-08-19 11:03:39

标签: javascript html coffeescript craftyjs

我正在使用Crafty.js,我最近添加了一个按钮,用于显示帮助信息,按钮工作正常,我从服务器正确获得返回,但我一直收到错误。

解释时间很长,请耐心等待。

这是我的代码:

where = this._current
auxiliary = $.getJSON('/help/', {'scene': where})

Crafty.e("HTML")
.attr({x: 100, y: 200, w: 224, h: 200})
.replace """
  <font color="white">
    #{auxiliary.message}
  </font>
   """

当代码是这样时,它显示的是:undefined,但是,如果我更改代码如下:

Crafty.e("HTML")
.attr({x: 100, y: 200, w: 824, h: 400})
.replace """
  <font color="white">
    #{auxiliary}
  </font>
   """

它显示的是:[object Object]

服务器返回的数据如下:

{
 "message":
   "<p>Help text</p>",
 "result":
   "ok"
}

我错过了什么?

1 个答案:

答案 0 :(得分:1)

$.getJSON是异步的,只会返回一个没有message属性的延迟。您应该将代码附加到回调:

where = this._current

$.getJSON('/help/', {'scene': where}).done (response) ->
  Crafty.e("HTML")
  .attr({x: 100, y: 200, w: 224, h: 200})
  .replace """
    <font color="white">
      #{response.message}
    </font>
  """