我正在使用把手模板并成功注册了帮助器。但是,我想要一个$ .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]并且它将该函数显示为对象。我想要它,以便返回回调的结果,或者调用回调
答案 0 :(得分:0)
线索位于网址的末尾:'&jsonp=?'
。这表明使用JSONP,这是一种使用JSON跨域的方式。因此,除了$.getJSON
之外,您还必须使用以下内容:
$.ajax({
url: bingURL,
dataType: 'jsonp',
jsonp: "jsonp",
success: @pointSuccess
});
删除网址上的'&jsonp=?'
,让jQuery处理它。