angular - 如何在 primeNg 多选中动态更新 defaultLabel
问题描述
在 primeNg 多选中,我从 ts 文件中取消选择项目,我可以取消选择,但这不会在输入字段中更新。
someComponent.html
<p-multiSelect [options]="cities1" maxSelectedLabels=0 selectedItemsLabel="{0}
items selected" [(ngModel)]="selectedCities1"></p-multiSelect>
<div *ngFor="let city in selectedCities1 let i=index">
<button (click)="delete(i)">{{city}}</button>
</div>
一些组件.ts
delete(i){
//using splice method to remove item from selectedCities1 array
}
问题是当我从下拉列表中选择和取消选择时,我能够看到“1 项已选择”“2 项已选择”等输出,反之亦然。
但是,当我从删除功能中执行此操作时,我可以取消选择下拉列表,但无法使用“1 项已选择”“2 项已选择”等更新 defaultLabel,反之亦然。
非常尝试并在所有primeng Q&A中进行了搜索,但无法找到答案。
解决方案
这很奇怪,因为如果使用拼接,应该调用 writeValue。
您可以在删除项目后尝试切片。这将创建一个新数组:
this.selectedCities1 = this.selectedCities1.slice();
但这里有一个黑客:
<p-multiSelect #sel [options]="cities1" maxSelectedLabels=0 selectedItemsLabel="{0}
items selected" [(ngModel)]="selectedCities1"></p-multiSelect>
<div *ngFor="let city in selectedCities1 let i=index">
<button (click)="delete(i);sel.updateLabel()">{{city}}</button>
</div>
我希望它有帮助!
推荐阅读
- linux - Linux,存储文件的 CPU 架构
- hql - 查询转换 Sql 到 HQL - Joins and From (SELECT ...)
- android - 如何区分方向变化和暂停应用程序?
- opencv - 我的 Google Colab PRO 在训练期间断开连接 - 如何保存和恢复我的训练
- r - 如何使用 R 中的 acf 和 pacf 图确定 AR/MA 项的顺序
- python - 如何从 Python 中网页内的链接获取数据?
- deep-learning - Pytorch 中的正确验证损失?
- java - 我无法获得 JSON 数据“预期为 BEGIN_ARRAY,但在第 1 行第 2 列路径 $ 处为 BEGIN_OBJECT”
- python - 嵌套 numpy.where 函数
- javascript - event "transitionend" is calling a function twice in React?