У меня есть элемент p-autocomplete (primeng 7.0.5), который управляет пользовательским полем объекта (тип OrganizationView).
Вот разметка:
<p-autoComplete
[(ngModel)]="state.organization"
(completeMethod)="onSearchOrganisation($event)"
(onClear)="state.organization = null"
(onSelect)="onOrganizationSelected($event)"
[emptyMessage]="'GLOBALS.NORESULT' | translate"
[forceSelection]="true"
[suggestions]="availableOrganizations"
[dropdown]="true"
field="name"
placeholder="{{'PLACEHOLDERS.ORGANISATION' | translate}}">
Состояние.организация запускает установщик со следующим кодом:
set organization(newOrganization: OrganizationView) {
this._organization = newOrganization;
console.log(typeof newOrganization, newOrganization);
}
При выборе значений из автозаполнения я всегда получаю объекты OrganizationView, как и ожидалось.Проблема появляется при очистке поля:
При очистке (выберите все с помощью мыши и нажмите клавишу Backspace), мой установщик запускается 2 раза: один с нулевым значением, а второй с пустой строкой.Вот вывод console.log:
> object null
> string
Вставка строки касается меня, потому что она портит всю систему со строгим контролем типов, которую я пытаюсь настроить.Я могу написать явные проверки на пустые строки, но мне было интересно, есть ли более чистое решение, или я что-то не так понял.