如何排除PrimeNG PickList中的选定项目?

问题描述 投票:1回答:2

我正在写一个“更新”页面并使用PrimeNG PickList。目标列表在初始时不为空。 PrimeNG不会从源列表中删除所选项目。

据我了解,PrimeNg在后台调用“==”运算符。但是,我无法覆盖运营商。如何覆盖它并排除所选项?

angular typescript primeng
2个回答
0
投票

我知道这已经有几个月了,但希望它对某人有所帮助!我最终在源数组上做了一个过滤器,如下所示:

this.availableRoles = allRoles.filter(userRole => {
    return !this.user.userRoles.some(x => x.id === userRole.id && x.name === userRole.name);
});

在我订阅了一些必需的对象之后,我确保调用此代码(即,我必须获取系统中所有可用角色的列表,并且我必须获得所需的用户,包括他/她继承的角色)。

然后,在HTML模板中,我将[source]绑定到availableRoles,将[target]绑定到我的用户对象上的userRoles属性。


0
投票

这就是我做到的。可能不是最好的方法因为它是O(n)^ 2但是它对于短的源列表非常有用。

for(let i = 0; i < this.list2.length; i++){
  for(let j = 0; j < this.list1.length; j++){
    if(this.list1[j].name === this.list2[i].name){
      this.list2.splice(i,1);
    }
  }
}
this.newList2 = this.list2;
© www.soinside.com 2019 - 2024. All rights reserved.