Ошибка формы угловая 4

Я новичок в Angular 4. Я застрял в ситуации здесь. Я получаю ошибку, как указано ниже.

html:26 ERROR Error: 
      ngModel cannot be used to register form controls with a parent formGroup directive.  Try using
      formGroup's partner directive "formControlName" instead.  Example:


    <div [formGroup]="myGroup">
      <input formControlName="firstName">
    </div>

    In your class:

    this.myGroup = new FormGroup({
       firstName: new FormControl()
    });

      Or, if you'd like to avoid registering this form control, indicate that it's standalone in ngModelOptions:

      Example:


    <div [formGroup]="myGroup">
       <input formControlName="firstName">
       <input [(ngModel)]="showMoreControls" [ngModelOptions]="{standalone: true}">
    </div>


    at Function.webpackJsonp.../../../forms/@angular/forms.es5.js.TemplateDrivenErrors.modelParentException (forms.es5.js:4103)
    at NgModel.webpackJsonp.../../../forms/@angular/forms.es5.js.NgModel._checkParentType (forms.es5.js:4423)
    at NgModel.webpackJsonp.../../../forms/@angular/forms.es5.js.NgModel._checkForErrors (forms.es5.js:4410)
    at NgModel.webpackJsonp.../../../forms/@angular/forms.es5.js.NgModel.ngOnChanges (forms.es5.js:4317)
    at checkAndUpdateDirectiveInline (core.es5.js:10845)
    at checkAndUpdateNodeInline (core.es5.js:12349)
    at checkAndUpdateNode (core.es5.js:12288)
    at debugCheckAndUpdateNode (core.es5.js:13149)
    at debugCheckDirectivesFn (core.es5.js:13090)

Кодекс, которому я следую здесь

HTML

    <form class="form-horizontal" [formGroup]="addCargoForm" (ngSubmit)="registerUser(addCargoForm)" novalidate>
          <div class="form-group col-md-4 col-sm-5 add-cargo-selector">
            <label>Select Departure Country</label>
            <select 
              class="form-control"
              [(ngModel)]="selectedCountry" 
              (ngModelChange)="setCountry(selectedCountry)"
              formControlName = "addCargoCountry">
              <option value="" disabled selected>Select Country</option>
              <option value="OMN">Oman</option>
              <option value="QTR">Qatar</option>
              <option value="AUH">Abhudhabi</option>
              <option value="SJH">Sharjah</option>
              <option value="SDI">Saudi</option>
              <option value="DXB">Dubai</option>
            </select>
            <control-messages [control]="addCargoForm.controls.addCargoCountry"></control-messages>
          </div>
</form>

IN Typescript файл Я делаю это Imported

import { Component } from '@angular/core';
import { NgbdModalBasic }  from './modal-basic';
import { CommonModule }  from '@angular/common';
import { FormsModule, FormBuilder, Validators } from '@angular/forms';

 export class addYourCargo {
    public addCargoForm = this.addCargoFB.group({
    addCargoCountry: [""]
  })

  constructor(
    public addCargoFB: FormBuilder){
  }
 }

На самом деле я делал подобные формы в более ранних компонентах, и это работало нормально. Я удалил ngmodel, ngmodelChange и все еще показывал ту же ошибку.

Пробовал автономный вариант, как указано в ошибке, но все равно показывал ту же ошибку.

Я что-то здесь упускаю? Пожалуйста, помогите, спасибо

1 ответ

Решение

Добавлять {standalone: true} параметр [ngModelOptions] на ваш выбор.

        <select 
          class="form-control"
          [(ngModel)]="selectedCountry" 
          (ngModelChange)="setCountry(selectedCountry)"
          [ngModelOptions]="{standalone: true}"
          formControlName = "addCargoCountry">
          <option value="" disabled selected>Select Country</option>
          ...
        </select>
Другие вопросы по тегам