diff --git a/src/app/components/generic-select/generic-select.component.html b/src/app/components/generic-select/generic-select.component.html index 3506521b3b2d33bb79c0bacdcf7f6abf4d8b506c..53bcde259c0c9cb0b6cdc1bbaf88964af02d089d 100644 --- a/src/app/components/generic-select/generic-select.component.html +++ b/src/app/components/generic-select/generic-select.component.html @@ -1,4 +1,4 @@ -<div class="btn-group" dropdown (click)="onSelect($event)"> +<div class="btn-group" dropdown (selected)="onSelect($event)"> <button dropdownToggle class="btn btn-primary dropdown-toggle waves-light my-1" type="button" mdbRippleRadius> {{currentLabel}} </button> diff --git a/src/app/components/generic-select/generic-select.component.ts b/src/app/components/generic-select/generic-select.component.ts index 8e457e2dd70fcae5b4a83c5d64535ad94b4c4949..119d7b93c029235f7c97c94f39b5a7d6ce6e0169 100644 --- a/src/app/components/generic-select/generic-select.component.ts +++ b/src/app/components/generic-select/generic-select.component.ts @@ -15,12 +15,14 @@ import { BaseComponent } from "../base/base.component"; */ export abstract class GenericSelectComponent<T> { - private get currentLabel(): string { - for (let e of this.entries) - if (e == this.selectedValue) - return this.entryLabel(e); - return "<no selection>"; + private _currentLabel: string; + + private get currentLabel(): string { + if (this._currentLabel === undefined) { + this._currentLabel = this.selectedLabel; + } + return this._currentLabel; } /** @@ -28,8 +30,18 @@ export abstract class GenericSelectComponent<T> { */ private onSelect(event: any) { const val = event.target.value; - if (val != undefined) + if (val !== undefined && val !== "") { this.selectedValue = val; + this._currentLabel = this.selectedLabel; + } + } + + private get selectedLabel(): string { + for (const e of this.entries) { + if (e === this.selectedValue) { + return this.entryLabel(e); + } + } } /**