0
我是新來的JS和我的新項目有選擇2,在目前,我有這樣的代碼(這是一個有點簡化版本),它工作得很好:過濾AJAX響應與其他AJAX請求
$("#group-search").select2({
ajax: {
url: "groups.search",
dataType: 'jsonp',
data: function (term, page) {
return {
q: term,
access_token: access_token
};
},
results: function (data, page) {
return { results: data.response.items };
}
}
});
但我需要在另一個AJAX請求的幫助下過濾我的結果(data.response.items
)。是否有可能實現?
更新1
這就是我試圖根據ValLenain 建議這樣做,但它不工作:
results: function (data, page) {
var groups = data.response.items;
var groupIds = new Array;
groups.forEach(function (group) {
groupIds.push(group.id);
});
$.ajax({
url: "groups.getById",
dataType: 'jsonp',
data: {
group_ids: groupIds,
v: '5.60',
access_token: access_token
},
success: function(data, page) {
return { results: data.response };
}
}).then(function(response){
groups = [];
// so at this moment we are expecting the select field to become empty, right?
// it doesn't work that way, nothing changes
});
return { results: groups };
}
@VaIleNain的身體,但不會對'{返回結果:項目};'語句中的'函數(filteredItems)'解僱之前很長一段時間?這不是AJAX調用的重點嗎?或者我在這裏錯過了什麼? –
@VaILeNain,我剛剛嘗試過,它按照我的預期工作。 'return {results:items};'在過濾ajax調用之前觸發。如果你需要完整的代碼,我可以更新我的主文章 –
是的,return語句將在第二次ajax調用之前很長時間執行,但它返回的對象(例如'{results:items}')將在ajax調用後更新因爲我們保留對它的引用。 – ValLeNain