选项不重新渲染 [ng2-select2] [ajax]

11 浏览
0 Comments

选项不重新渲染 [ng2-select2] [ajax]

我正在使用ng2-select2 ajax来实现级联下拉菜单,但是当我改变第一个下拉菜单时,应该重新渲染第二个下拉菜单的选项,但选项没有重新渲染。第二个下拉菜单将通过@Input()从第一个下拉菜单的值接收值并运行ajax。如果我使用setTimeout,它将重新渲染。有没有不使用setTimeout的方法?

第二个下拉菜单

@Input() value: string;
public ngOnChanges(): void {
    this.getConditionType(this.value);
}
public prepareUrl(value: string): void {
    this.url = myUrl + '/' + pathVariable;
    // setTimeout(() => { if I use timeout it will re render
        this.setSelectOption(this.url);
    // }, 1);
}
public setSelectOption(url: string): void {
    let ajaxOptions = {
        url: url,
        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: $.map(data.objectValue.items, function (obj) {
                    return { id: obj.code, text: obj.desc };
                }),
                pagination: {
                    more: (params.page * 10) < data.objectValue.total_count
                }
            };
        },
    };
    this.options = {
        ajax: ajaxOptions,
    };
}

HTML


0