javascript - tipos - Pasar parámetros adicionales a jquery. Devolución de llamada diferida
paso de parametros js (1)
Quiero pasar algunos parámetros adicionales a una devolución de llamada realizada jQuery.Deferred, lo estoy haciendo así ahora:
//dfd gets defined here as the return value of jQuery.ajax
var me = this;
var selector = $("#selector");
dfd.done(function(response){
me.updated(response, selector);
});
Me preguntaba si hay una mejor manera de hacer esto. Pensé que había leído en alguna parte acerca de una manera más limpia de pasar parámetros sin la necesidad de una función de contenedor anónima, pero no puedo recordar cuándo la leí o qué leí. Las búsquedas de Google no encontraron nada hasta el momento.
Para pasar algo a .done
devolución de llamada, debe pasarlo. .resolve
, por ejemplo
dfd.done( function(selector) {
console.log( selector );
});
dfd.resolve( selector );
pero en su caso dfd
es un objeto $.ajax
y .resolve
se llama internamente, por lo que no tiene control sobre él. Por lo tanto, la única forma de hacerlo es usar la función anónima y el cierre.
Por cierto: no hay nada sucio en esta solución.