数据如下:

  listOfData=[
    {
      "name":"标题1",
      "id":"1"
    },
    {
      "name":"标题12",
      "id":"2"
    },
    {
      "name":"标题123",
      "id":"3"
    },
    {
      "name":"标题1234",
      "id":"4"
    },
    {
      "name":"标题12345",
      "id":"5"
    },
  ]
<nz-select 

>
<nz-option
  *ngFor="let item of listOfData"
  [nzLabel]="item.name"
  [nzValue]="item.id"
>
</nz-option>
</nz-select>

使用nz-select时,如果没有指定宽度就会是下面的样子:

如果设置宽度是80px,那么就会变成这样:

<nz-select 
style="width: 80px;"
>
<nz-option
  *ngFor="let item of listOfData"
  [nzLabel]="item.name"
  [nzValue]="item.id"
>
</nz-option>
</nz-select>

如果宽度设置成300px,就会变成下面这样:

可以看出,如果宽度设置过长就浪费了很多空间,如果设置了过短就无法显示部分数据。所以我们需要设置自适应宽度。

代码如下:

<nz-select  
[nzDropdownStyle]="{
  width: 'fit-content',
  'min-width': '80px'
}"
style="min-width: 80px;"
>
<nz-option
  *ngFor="let item of listOfData"
  [nzLabel]="item.name"
  [nzValue]="item.id"
>
</nz-option>
</nz-select>

通过设置最小宽度80px, 然后设置宽度自适应即可。