angular - PrimeNG p-multiSelect 未显示所选值

标签 angular typescript primeng

模板中我的p-multiSelect:

<p-multiSelect
    name="selectedItens" 
    [options]="vlans" 
    [(ngModel)]="selectedItens" 
    optionLabel="name" 
></p-multiSelect>

在 ngOnInit 中,我使用此代码来填充 selectedItens:

this._myService
.getSelectedItens(this.myDto.id)
.pipe()
.subscribe(data => {
    this.selectedItens = data["result"];
});

selectedItens 是一个像这样的对象:

name: string | undefined;
active: Boolean | undefined;
id: number;

我检查了 console.log 的返回值,一切看起来都正确,但我的 multSelect 看起来像这样: enter image description here

数据[“结果”]示例:

0: {name: "V-123", active: true, id: 3}

1: {name: "V-832", active: false, id: 333}

2: {name: "V-220", active: false, id: 6}

所有选项都正常显示在列表中,但是当我单击以选择更多字段时,尽管工作正常,但复选框并未选中(单击的项目将添加到数组中)。

如果我删除 [(ngModel)]="selectedItens" 一切正常,但我需要显示已选择的 itens。

最佳答案

If I remove the [(ngModel)]="selectedItens" everything works fine

因为您将整个数组分配给 ngModel,所以无法显示正确的下拉列表(组合)。

在您的用例中,您需要将所选值分配给[(ngModel)]而不是整个列表。

这是stackBlitz供你引用。请尝试进行如下更改(P.S:使用如下硬编码值)

 this.selectedItem =  this.selectedItem.concat(this.vlans[1].value);

快乐编码..:)

关于angular - PrimeNG p-multiSelect 未显示所选值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64301357/

相关文章:

angular - 将 NgbDate 转换为用于格式化目的的时刻 : issue with first month assigned as 0 vs 1

arrays - typescript :声明返回嵌套数组的函数

angular - angular 4 typescript 中的文件上传和下载

css - 模态上的 Angular5 PrimeNG 数据表,上下文菜单显示在模态后面

html - 未应用 angular2 的主要 ng 样式

angular - 在使用 Primeng 的 FileUpload 组件上传之前添加自定义 header

angular - TypeScript 无法读取未定义的属性 - Angular 7

javascript - 将组件链接到单独的元素,并相对于该元素显示它

javascript - 如何在 TypeScript 中创建可在纯 JavaScript 中使用的全局命名空间/类?

angular - 在组件之间共享 Auth Observable 值,无需多次执行