Ich füge ein loading spinner einer Seite hinzu, die eine API auf localhost aufruft. Zuvor sah der Code wie:CoffeeScript: Callback.call funktioniert nicht
getDocumentContents: (id, callback) ->
$.ajax(
url: 'http://127.0.0.1:5000/doc/' + id
type: 'GET'
contentType: 'application/json'
success: callback
)
Es die jQuery $ Schnipsel Funktion verwendet und es funktioniert, den Rückruf anrufen, aber nicht angibt, an den Benutzer, dass etwas geschieht.
Das Hinzufügen von Code für die Spinner-Klasse Hinzufügen/Entfernen und das manuelle Aufrufen des Callbacks funktioniert nicht. Der Spinner erscheint und verschwindet wie erwartet, aber der Rückruf nie auslöst und keine JS Fehler zeigen in meiner Konsole nach oben:
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
)
Was mache ich falsch?
(1) Ist das Ihre wirkliche Einrückung? (2) 'callback.call' ist einfach eine Funktionsreferenz,' callback.call() 'OTOH ist ein Funktionsaufruf ohne Argumente; Funktionsaufrufende Klammern sind in CoffeeScript erforderlich, wenn keine Argumente vorhanden sind. –
Ja, das war Teil des Problems, entdeckte ich. Sieht so aus, als hätte ich auch einen Parameternamen weggelassen, der beim Erfolgsaufruf normalerweise ruhig weitergegeben wird. Ich werde eine Antwort schreiben. – huertanix