select2多个ajax调用

时间:2018-10-04 09:03:19

标签: angularjs ajax jquery-select2 angularjs-select2

我正在尝试调用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
 };

0 个答案:

没有答案