Feature request
If you change the datasource used to generate the options, the selected value should be kept. It already works like this for primitive options' values. For complex options' values, something like *ngFor
's trackByFunction could take care of which attribute would define whether one of the new options is equals to the one already selected.
When the options' values are not primitive types and you change the options' datasource, the selected value is unset even if it's present in the new datasource.
Plunk: https://plnkr.co/edit/GJn833kKV1qaMthxDmMe?p=preview
In the plunk, select an option and then click on the reload datasource button. The selected value will not be kept.
It would simplify the developer's code if something like trackBy="'id'"
or trackBy="'owner.personalDocuments.socialSecurityNumber'"
was possible to do.
That's what compareWith
is for:
<md-select [compareWith]="compareFn">
...
</md-select>
compareFn: ((f1: any, f2: any) => boolean) | null = this.compareByValue;
compareByValue(f1: any, f2: any) {
return f1 && f2 && f1.value === f2.value;
}
Oh, in this case... closing this issue. Thanks.
This issue has been automatically locked due to inactivity.
Please file a new issue if you are encountering a similar or related problem.
Read more about our automatic conversation locking policy.
_This action has been performed automatically by a bot._
Most helpful comment
That's what
compareWith
is for:Check this working here