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

时间:2017-05-15 11:19:34

标签: angular typescript primeng

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

据我所知,PrimeNg呼叫" =="运营商在后台。但是,我无法覆盖运营商。如何覆盖它并排除所选项?

2 个答案:

答案 0 :(得分: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属性。

答案 1 :(得分: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;