【问题标题】:How to create option in ng2-select2 ajax如何在 ng2-select2 ajax 中创建选项
【发布时间】:2017-04-04 03:33:36
【问题描述】:

我在我的 Angular2 项目中使用 ng2-select2,但我遇到的问题是我无法在我的 select2 中呈现选项。我得到了数据,但我无法在 templateResult 中显示选项。

HTML

<select2 [options]="options"></select2>

TS

public options: Select2Options;
public ajaxOptions: any;

public ngOnInit(): void {

    this.ajaxOptions = {
        url: 'https://localhost:8080/ajaxdata/testselect2',
        dataType: 'json',
        delay: 500,
        cache: false,
        data: (params: any) => {
            return {
                search: params.term,
                gotoPage: params.page
            };
        },
        processResults: (data: any, params: any) => {
            params.page = params.page || 1;
            return {
                results: data.objectValue.items,
                }),
                pagination: {
                    more: (params.page * 10) < data.objectValue.total_count
                }
            };
        },
    };

    this.options = {
        ajax: this.ajaxOptions,
        templateResult: (object: Select2SelectionObject) => {
            // should create option in here
        }
    };

【问题讨论】:

    标签: angular


    【解决方案1】:

    我修好了。我的 json 不是用 select2 格式化的,所以我像这样在 processResults 中更改我的代码并删除 templateResult 它将呈现选项。

    processResults: (data: any, params: any) => {
        params.page = params.page || 1;
        return {
            results: $.map(data.objectValue.items, function (obj) {
                return { id: obj.code, text: obj.desc };
            }),
            pagination: {
                more: (params.page * 10) < data.objectValue.total_count
            }
        };
    },
    

    【讨论】:

    • 我面临同样的问题。它甚至没有触发 AJAX 调用。你是怎么做到的?
    • 我可以触发 AJAX 调用,但我无法将其呈现为 html,你能告诉我你的代码吗?
    • 它实际上是您的代码的一种副本。请see this。我已经在这个问题中发布了它
    猜你喜欢
    • 2019-09-17
    • 2018-02-13
    • 1970-01-01
    • 1970-01-01
    • 2018-03-27
    • 2017-06-25
    • 1970-01-01
    • 2018-12-03
    • 2022-01-16
    相关资源
    最近更新 更多