0

我正在使用车把模板并已成功注册了一个助手。但是,我想做一个 $.getJSON 并在模板中显示该 ajax 请求的一些结果。

这是我的 javascript 代码(用咖啡编写)

      Handlebars.registerHelper('getNearestAddressFromPoint',(lat,lon) ->
    console.log("in register helper")
    bingURL = 'http://dev.virtualearth.net/REST/v1/Locations/' + lat + ','+ lon + '?&key=' + bingMapsKey + '&jsonp=?'
    $.getJSON(bingURL,@pointSuccess))


  pointSuccess:(data)=>
    tooltipAddr = $(@el).find("#tooltipAddr")
    address = data.resourceSets[0].resources.name
    $(tooltipAddr).text(address)
    console.log("hello")

这个 jquery.text 没有运行,console.log 也没有运行,但是正在记录“in register helper”。

这可能是因为帮助程序将 $.getJSON 作为函数返回,因为在我的模板中 [object Object] 正在显示并且它正在将函数显示为对象。我想要它以便返回回调的结果,或者正在调用回调

4

1 回答 1

0

线索在 url: 的末尾'&jsonp=?'。这表示使用 JSONP,这是一种使用 JSON 跨域的方式。因此,$.getJSON您将不得不使用类似的东西:

$.ajax({
    url: bingURL,
    dataType: 'jsonp',
    jsonp: "jsonp",
    success: @pointSuccess
});

删除'&jsonp=?'你的 url 并让 jQuery 处理它。

于 2012-09-09T03:14:44.920 回答