我想使用templateResult选项使用select2 v4格式化结果。我有以下代码:

$(".search").select2({
    minimumInputLength: 3,
    ajax: {
        url: url,
        dataType: 'json',
        delay: 250,
        processResults: function (data) {
            return {
                results: data.items
            };
        },
        templateResult: function (data) {
            console.log('templateResult');
            return '<span><img src="//example.com/img.png" /> ' + data.text + '</span>';
        },
    }
});

但是,由于没有任何输出到控制台,因此templateResult似乎没有被调用。即使我将返回值更改为“TEST”,仍会显示默认结果。无论是否包含templateResult,代码的工作原理都是相同的。

最佳答案

我在ajax范围内有templateResult。修复如下:

$(".search").select2({
    minimumInputLength: 3,
    ajax: {
        url: url,
        dataType: 'json',
        delay: 250,
        processResults: function (data) {
            return {
                results: data.items
            };
        },
    },
    templateResult: function (data) {
        console.log('templateResult');
        return '<span><img src="//example.com/img.png" /> ' + data.text + '</span>';
    }
});

09-30 22:46