【发布时间】:2011-06-01 23:22:06
【问题描述】:
我希望转换 ajax 调用返回的数据并将其传递给另一个插件的构造函数。我认为如果插件的选项接受其数据的对象或返回数据的函数,这将允许我使用延迟对象作为 jQuery.ajax。
问题是我需要在客户端转换数据,但看不到如何使用 jQuery.Deferred 对象执行此操作。有很多不同复杂性的例子,但处理传递和转换参数的例子并不多。
这是一些代表我想要实现的代码。
function shapeResults( rawData ) {
return $.Deferred(function ( dfd ) {
//transform in someway
var shapedData = rawData.toUpperCase();
alert( shapedData );
//change the 'signature' from jqXHR to data
dfd.resolve( shapedData );
}
).promise();
}
function useTransformedData ( data ) {
//hoping for UPPERCASE data here but still getting rawData
alert( data );
}
$.get( '/' )
.success( shapeResults )
.then( useTransformedData );
就目前而言,useTransformedData 回调似乎总是接收原始数据而不是转换数据。
我正在尝试的方法是否可行,如果可以,有人可以帮助我指出正确的方向吗?
【问题讨论】:
标签: jquery ajax jquery-deferred