Select2:为什么预选的OPTION标签只显示十字形,没有文字?

时间:2015-06-11 09:37:22

标签: jquery-select2 jquery-select2-4

我正在做这样的SELECT:

<select class="select form-control js-example-basic-multiple" multiple="multiple" id="id_tags" name="tags">
    {% for tag in photo.tags.all %}
    <option selected value="http://localhost:8001/api/tags/{{ tag.id }}/">{{ tag.name }}</option>
    {% endfor %} 
</select>

然后我启动了我的select2实例:

$(".js-example-basic-multiple").select2({
    multiple : true,
    ajax : { ..... }
});

我明白这一点:

screenshot 2015-06-10 18 09 19

AJAX肯定在工作,可以添加新项目:

screenshot 2015-06-10 18 09 40

即使对于只有十字架的项目,Select2实例也有正确的数据:

IN >>> $(".js-example-basic-multiple").val()
OUT >>> ["http://localhost:8001/api/tags/4142/", "http://localhost:8001/api/tags/4145/", "http://localhost:8001/api/tags/4160/", "http://localhost:8001/api/tags/4213/", "http://localhost:8001/api/tags/4344/", "http://localhost:8001/api/tags/6602/"]

1 个答案:

答案 0 :(得分:1)

如果它可以帮助其他人,这就是我必须要解决的问题:

function make_select2() {
    $(".js-example-basic-multiple").select2({
        multiple : true,
        id : function(repo) {
            //console.log("repo");
            //console.log(repo);
            return repo.url;
        },
        ajax : {
            url : "/api/tags/",
            dataType : 'json',
            delay : 100,
            placeholder : "Tag your photos",
            data : function(params) {
                //console.log("params");
                //console.log(params);
                return {
                    q : params.term, // search term
                    page : params.page
                };
            },
            processResults : function(data, params) {
                // parse the results into the format expected by Select2.
                // since we are using custom formatting functions we do not need to
                // alter the remote JSON data
                //console.log("data");
                //console.log(data);
                //console.log("params");
                //console.log(params);
                var select2Data = $.map(data.results, function(obj) {
                    obj.id = obj.url;
                    obj.text = obj.name;
                    return obj;
                });
                return {
                    results : select2Data,
                    pagination : {
                        more : data.next
                    }
                };
            },
            cache : true,

        },
        escapeMarkup : function(markup) {
            return markup;
        },
        minimumInputLength : 1,
        templateResult : formatRepo, // omitted for brevity, see the source of this page
        // templateSelection : formatRepoSelection // omitted for brevity, see the source of this page
    });
}

这是我的代码 - 我所要做的就是评论templateSelection - 无论如何它都是必要的。