Ng-Zorro select 未显示 select 使用 NgModel 编辑的项目
Ng-Zorro select not showing selected items with NgModel
我正在使用 Ng-Zorro 的倍数 select,它在抽屉里。打开抽屉时,我给 select 元素一个选项列表和一个已经选择的项目列表。可供选择的选项列表工作正常,但已经 selected 的项目不显示。这也可以在这里看到:StackBlitz
代码:
<nz-select [(ngModel)]="selectedAttributes"
[nzMaxTagCount]="3"
[nzMaxTagPlaceholder]="attributeTagPlaceHolder"
nzMode="multiple"
name="changeAttributes"
id ="changeAttributes"
nzPlaceHolder="Please select">
<nz-option *ngFor="let attribute of allAttributes" [nzLabel]="attribute.name" [nzValue]="attribute"></nz-option>
</nz-select>
<ng-template #attributeTagPlaceHolder let-selectedList> "and " {{ selectedList.length }} " more items" </ng-template>
其中 allAttributes 列表的格式如下:
allAttributes= [
{
"id": 1,
"name": "Mask"
},
{
"id": 2,
"name": "Intensive"
},
{
"id": 3,
"name": "Family"
},
{
"id": 4,
"name": "Isolation"
}
];
并且 selectedAttributes 是 allAttributes 列表中的一项或多项:
selectedAttributes= [{"id": 1,"name": "Mask"}];
无论我如何创建或格式化 selected 属性列表(它可以直接来自 allAttributes 列表),都看不到占位符并且 select 为空,加上选择时所有选项,nzMaxTagPlaceholder 显示有一个额外的项目被选中。
任何人都可以告诉我动态设置 selected 项目的方法吗?
试试下面的方法。
selectedAttributes = [this.allAttributes[0]];
自
{"id": 1,"name": "Hapnikumask"}
是一个复杂的对象,它的相等性将通过引用来检查。因此,您正在定义一个新对象作为选定对象,它将与源对象不同。
我正在使用 Ng-Zorro 的倍数 select,它在抽屉里。打开抽屉时,我给 select 元素一个选项列表和一个已经选择的项目列表。可供选择的选项列表工作正常,但已经 selected 的项目不显示。这也可以在这里看到:StackBlitz
代码:
<nz-select [(ngModel)]="selectedAttributes"
[nzMaxTagCount]="3"
[nzMaxTagPlaceholder]="attributeTagPlaceHolder"
nzMode="multiple"
name="changeAttributes"
id ="changeAttributes"
nzPlaceHolder="Please select">
<nz-option *ngFor="let attribute of allAttributes" [nzLabel]="attribute.name" [nzValue]="attribute"></nz-option>
</nz-select>
<ng-template #attributeTagPlaceHolder let-selectedList> "and " {{ selectedList.length }} " more items" </ng-template>
其中 allAttributes 列表的格式如下:
allAttributes= [
{
"id": 1,
"name": "Mask"
},
{
"id": 2,
"name": "Intensive"
},
{
"id": 3,
"name": "Family"
},
{
"id": 4,
"name": "Isolation"
}
];
并且 selectedAttributes 是 allAttributes 列表中的一项或多项:
selectedAttributes= [{"id": 1,"name": "Mask"}];
无论我如何创建或格式化 selected 属性列表(它可以直接来自 allAttributes 列表),都看不到占位符并且 select 为空,加上选择时所有选项,nzMaxTagPlaceholder 显示有一个额外的项目被选中。
任何人都可以告诉我动态设置 selected 项目的方法吗?
试试下面的方法。
selectedAttributes = [this.allAttributes[0]];
自
{"id": 1,"name": "Hapnikumask"}
是一个复杂的对象,它的相等性将通过引用来检查。因此,您正在定义一个新对象作为选定对象,它将与源对象不同。