3

我在多个 select2 中加载远程数据时遇到问题。我的代码是

    var fetchGroups = function (queryParams) { 
    console.log(JSON.stringify(queryParams));
    return $http.get("https://******/****/***/" + queryParams.data.query).then(queryParams.success); 
}; 

$scope.groupSelectOptions= { 
    minimumInputLength: 3, 
    ajax: { 
        data: function (term, page) { 
            return { query: term }; 
        }, 
        quietMillis: 500, 
        transport: fetchGroups, 
        results: function (data, page) {
            console.log(data);
            // parse the results into the format expected by Select2 return { results: data };
            var drastics = data.data.result;
            if(drastics){
                var data = new Array();
                for(var i = 0; i < drastics.length; i++){
                    data.push(
                        {
                            id: drastics[i].id,
                            text: drastics[i].name
                        }
                    );
                }
            } else {
                data = data.data.result;
            }
            return { results: data };

        }
    }

};

它从获取请求中返回值,但是当我选择它时,它在输入框中返回未定义。

4

1 回答 1

1

只需确保您已将“数据”属性包含到 $scope.groupSelectOptions 中,如下所示:

$scope.groupSelectOptions= { 
    minimumInputLength: 3, 
    ajax: { 
        data: function (term, page) { 
            return { query: term }; 
        },
      .....
    data:[]} 

您现在应该看到在输入字段中选择的术语。

于 2014-07-09T15:32:59.890 回答