Javascript 选择2:";“文本未定义”;使用ajax获取json时

Javascript 选择2:";“文本未定义”;使用ajax获取json时,javascript,jquery,ajax,json,jquery-select2,Javascript,Jquery,Ajax,Json,Jquery Select2,我在将json结果返回select2时遇到问题。我的json不会返回包含“文本”字段的结果,因此需要格式化结果,以便select2接受“名称” 如果json中的文本字段设置为“text”,则此代码可以工作,但在本例中,我无法更改json结果的格式(代码超出我的控制范围) 我已经查阅了文档,发现了一些可以放入结果中的语句,例如 text: 'Name', 但我仍然得到“文本未定义” 感谢您的帮助。请注意,select2始终是{id,text}对,因此您需要同时指定这两个选项 results: f

我在将json结果返回select2时遇到问题。我的json不会返回包含“文本”字段的结果,因此需要格式化结果,以便select2接受“名称”

如果json中的文本字段设置为“text”,则此代码可以工作,但在本例中,我无法更改json结果的格式(代码超出我的控制范围)

我已经查阅了文档,发现了一些可以放入结果中的语句,例如

text: 'Name',
但我仍然得到“文本未定义”


感谢您的帮助。

请注意,select2始终是{id,text}对,因此您需要同时指定这两个选项

results: function (data, page) {
            var newData = [];
            _.each(data, function (item) {
                newData.push({
                    id: item.Id  //id part present in data 
                  , text: item.DisplayString  //string to be displayed
                });
            });
            return { results: newData };
        }
    },

感谢@neel shah解决了我的问题。我有一个小问题,我不想使用额外的库,所以我改为普通的jquery。 如果你想使用普通的jquery或javascript

results: function (data, page) {
 var newData = [];
    $.each(data, function (index,value) {
        newData.push({
            id: value.Id,  //id part present in data
            text: value.DisplayString  //string to be displayed
        });
    });
}

结果:函数(数据,页面){
var newData=[];
对于(变量i=0;i

所有学分归neel shah所有。再次感谢。

这对我来说很有效,尽管使用了常规for循环。非常感谢。TypeError:uu是未定义的。我必须使用underline.js库。如果您可以将其更改为普通for循环,这将非常有帮助。再次感谢。
results: function (data, page) {
 var newData = [];
    $.each(data, function (index,value) {
        newData.push({
            id: value.Id,  //id part present in data
            text: value.DisplayString  //string to be displayed
        });
    });
}
results: function (data, page) {
   var newData = [];
    for ( var i = 0; i < data.length; i++ ) {
        newData.push({
            id: data[i].Id,  //id part present in data
            text: data[i].DisplayString  //string to be displayed
        });
}