После выбора клавиши ввода фильтра в поле параметров мультиселекта primeng происходит переход в положение 0,0. - PullRequest
0 голосов
/ 20 сентября 2018

Я использую элемент управления primeng multiselect внутри datatable.
Когда я помещаю его в ng-template pTemplate = "editor", я получаю непредвиденное поведение:

При первом открытии мультиселекта все в порядке.Но когда я пишу любую клавишу внутри фильтра, список опций переходит в положение 0,0 экрана.

HTML-код:

<ng-template *ngIf="itemProperty.widget=='multiSelect'&& itemProperty.name.indexOf('.')<0" let-row="rowData" pTemplate="editor">
                <p-multiSelect
                [displaySelectedLabel]="itemProperty.displaySelectedLabel? 'true':'false'"
                    [defaultLabel]="itemProperty.defaultLabel?'Choose':'...'"
                    optionLabel="Name"
                    [disabled]="itemProperty.editableOnlyInsert&&row.RowState!=3"
                    #con="ngModel"
                    [options]="itemProperty.options"
                    [(ngModel)]="row.Modules"
                    appendTo="body"                        [filter]="itemProperty.options&&itemProperty.options.length>5"
                    (onChange)="editItem(row,con,false,$event,true)" >
                </p-multiSelect>
            </ng-template>

После первого щелчка по мультиселекту:

enter image description here

После записи чего-либо внутривход фильтра:

enter image description here

Когда я использую pTemplate = "body", проблем нет.

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

DataTable удален.Вы можете использовать с Turbotable или вы можете попробовать это (delete appendTo = "body")

<p-multiSelect
            [displaySelectedLabel]="itemProperty.displaySelectedLabel? 'true':'false'"
                [defaultLabel]="itemProperty.defaultLabel?'Choose':'...'"
                optionLabel="Name"
                [disabled]="itemProperty.editableOnlyInsert&&row.RowState!=3"
                #con="ngModel"
                [options]="itemProperty.options"
                [(ngModel)]="row.Modules"
                [filter]="itemProperty.options&&itemProperty.options.length>5"
                (onChange)="editItem(row,con,false,$event,true)" >
0 голосов
/ 20 сентября 2018

Я решаю это, обновляя файл multiselect.ts из

components/multiselect/multiselect.ts

ngAfterViewChecked() {
        if (this.filtered) {
            this.filtered = false;
        }
    }

. Теперь он работает нормально, он не доходит до угла экрана.Хотя это плохо для измененного файла в модуле, я думаю, они исправят его в следующем выпуске.

...