我正在尝试调用2个REST API,然后填充select2下拉列表。 我的select2代码对于1个API调用工作正常,但是如果我尝试在AJAX results 中调用2个API则不能。
我试图调用第二个API的方式对我来说似乎很棘手,但是我不太确定如何实现此目的。如果未在select2中使用AJAX调用,则可以嵌套它们,但这是一种特殊情况。
关于如何实现这一目标的任何想法,或者我在这里做错了什么
以下是该代码:
Select2({
disabled : true,
minimumInputLength : 1,
multiple : true,
ajax : {
url : "/rest/api/2/user/picker" ,
type : "GET",
dataType : 'json',
cache : true,
// query parameters for the remote ajax call
data : function data(term) {
return {
query : term,
maxResults : 5,
showAvatar : true
};
},
// parse data from the server into form select2 expects
results : function results(data) {
var i, dataLength, dataUsers;
data = JSON.parse(data);
var users = [];
dataLength = data.users.length;
dataUsers = data.users;
for (var i = 0; i < dataLength; i++)
{
if (dataUsers[i].key != $scope.userInputs.owner.key) {
dataUsers[i].context = CommonConstants.RECIPIENT_AUTH_CONTEXT.USER;
users.push(dataUsers[i]);
}
}
if($scope.someBoolean){
ajax : {
url : "/rest/api/2/groups/picker",
type : "GET",
dataType : 'json',
cache : true,
data : function data(term) {
return {
query : term,
maxResults : 5
};
},
success: function(responseForGroups){
var groupData = JSON.parse(responseForGroups);
var dataGroups, groupsLength;
dataGroups = groupData.groups;
groupsLength = groupData.total;
for (var i = 0; i < groupLength; i++)
{
dataGroups[i].context = CommonConstants.RECIPIENT_AUTH_CONTEXT.GROUP;
dataGroups[i].key = dataGroups[i].name;
dataGroups[i].displayName = dataGroups[i].name;
users.push(dataGroups[i]);
}
}
};
}
return {
results : users
};