如何检测何时从Primeng自动完成中删除某项?角度6

时间:2019-05-27 11:03:01

标签: angular user-interface autocomplete primeng angular-material-6

我正在使用动态预填自动完成功能来允许用户选择多个项目,但是我一直坚持如何检测用户何时按下x从列表中删除项目。我知道我可以使用[(ngModel)]来检测值的变化,但是我的问题是:

有没有一种类似回调函数的方法来检测{{1 }}被按下

定义为:

x

使用

<p-autoComplete
            #autoCompleteObject
            [(ngModel)]="value" [suggestions]="filteredOptions"
            (completeMethod)="filterObjects($event)"
            [multiple]="true"
            [dropdown]="false"
            (onSelect)="emitData()"
            (onUnselect)="emitData()"
            placeholder="{{ label | i18n}}"
    >
        <ng-template let-item pTemplate="selectedItem">
            <div class="selected-item">
                <span >{{item[labelProperty]}}</span>
            </div>
        </ng-template>
        <ng-template let-item pTemplate="item">
            <div class="flex ">
                <span >{{item[labelProperty] | i18n}}</span>
            </div>
        </ng-template>

    </p-autoComplete>

如下图所示,我在 <my-autocomplete-multiple [(ngModel)]="entryItems" label='type_here' [options]=allItems ngDefaultControl></my-autocomplete-multiple> 上圈了红色 enter image description here

1 个答案:

答案 0 :(得分:0)

根据documentation,当删除选定的值时,将调用onUnselect()回调方法。 $event参数是多种模式下的未选择值。

我建议不要将emitData()绑定到onSelect()onUnselect()这两个方法,而建议对每个方法使用单独的方法,如下所示:

(onSelect)="emitAddData($event)"
(onUnselect)="emitRemoveData($event)"

然后绑定到onUnselect()的对象就可以处理删除某项内容时需要做的一切。