Wie kann ich in ExtJS 5 auf Erfolg in einem Ajax-Proxy warten?

Ich habe ein Grid mit dem RowEditing-Plugin, dessen Store-AjaxProxy einen JsonWriter verwendet, um Updates auf den Server zurückzuschreiben.

Wenn ein Update stattfindet, muss ich Code auslösen, um eine andere Komponente zu aktualisieren, was einen separaten Trip zum Server erfordert.

Das muss schießennach Der JsonWriter kehrt zurück, da dies von den auf dem Server aktualisierten Daten abhängt. Daher kann ich das "Update" -Ereignis des Stores nicht abhören, da dies vor dem Ajax-Aufruf erfolgt (auch bei deaktiviertem Batching).

Ich habe versucht, einen Listener für "endupdate" wie folgt zu setzen, aber dieser wird erneut ausgelöst, bevor die AJAX-Anfrage gestellt wird:

        var ds = new Ext.data.Store({
            model:      modelname,
            autoSync:   true,
            proxy: {
                type:           "ajax",
                api: {
                    create:     "ajax.aspx?xaction=create",
                    read:       "ajax.aspx?xaction=read",
                    update:     "ajax.aspx?xaction=update",
                    destroy:    "ajax.aspx?xaction=destroy"
                },
                batchActions:   false,
                reader:         { type: "json", rootProperty: "rows", totalProperty: "results" },
                writer:         { type: "json", encode: true, writeAllFields: true, rootProperty: "rows" }
            },
            listeners: {
                load:       { fn: reloadPreview },
                endupdate:  { fn: reloadPreview }
            }
        });

Ich sende keine Antwort vom Server zurück für den "Update" -Aufruf des Autors ... Ich kann anscheinend keine Dokumentation darüber finden, was AjaxProxy oder JsonWriter zurück erwartet, und das Senden einer leeren Antwort scheint zu funktionieren.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage