我正在使用动态预填自动完成功能来允许用户选择多个项目,但是我一直坚持如何检测用户何时按下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>
上圈了红色
答案 0 :(得分:0)
根据documentation,当删除选定的值时,将调用onUnselect()
回调方法。 $event
参数是多种模式下的未选择值。
我建议不要将emitData()
绑定到onSelect()
和onUnselect()
这两个方法,而建议对每个方法使用单独的方法,如下所示:
(onSelect)="emitAddData($event)"
(onUnselect)="emitRemoveData($event)"
然后绑定到onUnselect()
的对象就可以处理删除某项内容时需要做的一切。