I am trying to implement select
in Angular 5 but I am constantly getting this
I've tried many StackOverflow questions already, The only difference is - My components are inside another module within the application which is at the end injected into the main module eventually. I've also tried injecting the FormsModule
inside the inner module. I have tried importing ReactiveFormsModule
but didn't work.
I've added FormsModule
to imports like this
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { AppRoutingModule } from './app-routing.module';
@NgModule({
declarations: [
...CombineComponents
],
imports: [
BrowserModule,
FormsModule,
AppRoutingModule,
HttpClientModule
]
});
and here is my component markup
<label for="ctn" class="d-inline-block pl-1 semi-bold">Current active number</label>
<select
#selectElem
class="custom-select"
id="ctn"
(change)="onCTNChange(selectElem.value)"
formControlName="state"
>
<option value="" disabled>Choose a state</option>
<option *ngFor="let ctn of availableCTN" [ngValue]="ctn.value">
{{ctn.text}}
</option>
</select>
Use value
:
[value]="ctn.value"
I was doing a very silly mistake and got into this issue.
[ngValue]="ctn.value"
[value]
I was importing formsModule
inside parent module, I should have imported it in child module to make [(ngModel)]
work[value]
should be [(value)]
if we want the default selection show up.so my final component code is.
<label for="ctn" class="d-inline-block pl-1 semi-bold">Current active number</label>
<select
#selectCTN
class="custom-select"
id="ctn"
[(ngModel)]="selectedCTN"
(change)="onCTNChange(selectCTN.value)"
>
<option value="" disabled>Choose a state</option>
<option *ngFor="let ctn of availableCTN" [(value)]="ctn.value">
{{ctn.text}}
</option>
</select>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With