Is it possible to programmatically clear the selection of an ng-select dropdown? I'm wanting the equivalent behaviour of clicking the clear icon, but triggered programmatically.
I was expecting a clear()
method or something similar, but the documented API doesn't have anything along those lines.
This is my dropdown code:
<ng-select class="ng-select-wrap"
[searchFn]="multiTermSearch"
[items]="calculationOptions"
placeholder="Please select..."
name="calculation"
#calculationValue="ngModel"
[(ngModel)]="selectedCalculation">
</ng-select>
Here is solution from comment:
Note that
handleClearClick
isn't exposed in docs as public api method however as Tim mentioned it's public method so it's possible to call it.Clearing the selection can be achieved by simply setting the ngModel value to null. In the case of the above example:
This isn't exactly the same as clicking the clear icon, as it doesn't trigger the
(clear)
output event, but it was sufficient for my needs.Like @tim answer is correct but I will prefer you set as an empty array instead of null just to save any loop break.
I was looking for the same but for templates to invoke it outside
ng-select
. So, the below worked fine for me following the accepted answer. ^_^Even thought @Buczkowski answer clears
ng-select
, it also does a focus on input, which isn't needed for all cases. So i used other method:clearModel
So if you need to just clear input, use
clearModel
method. Else if focus and clear is needed, usehandleClearClick
.Assuming the originally posted code sample below.
The
selectedCalculation
variable is created as an array and not a string, as the ng-select can allow for multiple values to be selected if[multiple]="true"
is set.To clear the selected value(s) in the array programmatically, use:
Should you need to clear the bound items, use:
Both of the above can be done by adding the (change) handler in HTML.
Something like this in your TypeScript.