我正在撰写"更新"页面并使用PrimeNG PickList。目标列表在初始时不为空。 PrimeNG不会从源列表中删除所选项目。
据我所知,PrimeNg呼叫" =="运营商在后台。但是,我无法覆盖运营商。如何覆盖它并排除所选项?
答案 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;