0

我正在使用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"
}

我错过了什么?

4

1 回答 1

1

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

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>
  """
于 2013-08-19T11:08:42.707 回答