我正在向一个调用localhost上的API的页面添加一个加载微调器。以前,代码看起来像:
getDocumentContents: (id, callback) ->
$.ajax(
url: 'http://127.0.0.1:5000/doc/' + id
type: 'GET'
contentType: 'application/json'
success: callback
)
它使用jQuery $ .ajax函数,它可以工作,调用回调但不向用户指示发生了任何事情。
为微调器类添加/删除和手动调用回调添加代码不起作用。微调器按预期显示和消失,但回调从未触发,并且我的控制台中没有出现JS错误:
getDocumentContents: (id, callback) ->
$.ajax(
url: 'http://127.0.0.1:5000/doc/' + id
type: 'GET'
contentType: 'application/json'
beforeSend: ->
$('#sidePanelBody i.article-spinner').addClass('fa fa-spinner fa-pulse fa-3x fa-fw')
success: ->
$('#sidePanelBody i.article-spinner').removeClass('fa fa-spinner fa-pulse fa-3x fa-fw')
callback.call
)
我做错了什么?
答案 0 :(得分:0)
正如Mu指出的那样,函数调用需要()而不是.call。我假设后一种语法来自我的假设,即CoffeeScript并不想要parens。我也错过了"数据"先前自动传递的参数,显然现在需要在函数闭包和回调调用中显式声明。此代码有效:
success: (data) ->
$('#sidePanelBody i.article-spinner').removeClass('fa fa-spinner fa-pulse fa-3x fa-fw')
callback(data)