Angular 当占位符选项处于选中状态时,ng select将发送“NULL”而不是空字符串

Angular 当占位符选项处于选中状态时,ng select将发送“NULL”而不是空字符串,angular,typescript,Angular,Typescript,当执行库存搜索时,用户有几个选项来优化搜索。所有选项都不是必需的,但如果未选择其中一个选项,则ng select会将该选项解释为NULL,服务器不会在GET请求上处理该选项,因为它需要一个空字符串。这可以通过不使用占位符文本而使用空字符串来解决,但这显然会损害用户体验。我需要一种方法,当仍然有占位符文本而未选择任何内容时,为ng select传递一个空字符串 <ng-select placeholder="{{'Select year' | translate}}" [(ngMod

当执行库存搜索时,用户有几个选项来优化搜索。所有选项都不是必需的,但如果未选择其中一个选项,则ng select会将该选项解释为NULL,服务器不会在GET请求上处理该选项,因为它需要一个空字符串。这可以通过不使用占位符文本而使用空字符串来解决,但这显然会损害用户体验。我需要一种方法,当仍然有占位符文本而未选择任何内容时,为ng select传递一个空字符串

    <ng-select placeholder="{{'Select year' | translate}}" [(ngModel)]="selectedHeavyDutyYear" [items]="searchHeavyDutyYears" [clearable]="false" (change)="populateHeavyDutyMakes()" [disabled]="isLoading" dropdownPosition="bottom"></ng-select>
    <ng-select placeholder="{{'Select make' | translate}}" [(ngModel)]="selectedHeavyDutyMake" [items]="searchHeavyDutyMakes" [clearable]="false" (change)="populateHeavyDutyModels()" [disabled]="isLoading || !selectedHeavyDutyYear" dropdownPosition="bottom"></ng-select>
    <ng-select placeholder="{{'Select model' | translate}}" [(ngModel)]="selectedHeavyDutyModel" [items]="searchHeavyDutyModels" [clearable]="false" (change)="searchHeavyDutyYmmIfDesktop()" [disabled]="isLoading || !selectedHeavyDutyMake" dropdownPosition="bottom"></ng-select>

我认为这是一个常见问题,并偶然发现了一个解决方案,但我正在努力将其作为一个指令写入Angular 7中的任何select。在调用API之前,请检查TS并用空字符串替换NULL

if (!this.selectedHeavyDutyYear) {
  this.selectedHeavyDutyYear = "";
}

因此,我们目前在这个特定的案例中使用类似的方法,但我们试图找到一种实现指令的方法,以便将其添加到每个select中,从而防止将来在添加新select时出现错误。