javascript - Angular 2 hatası - RC4 sürümü ile "exportAs" değeri "ngModel" olarak ayarlanmış bir yönerge yok


Uygulamamda Angular 2 formlarını kullanıyorum ve formları verilen linke dayanarak oluşturdum.

https://angular.io/docs/ts/latest/guide/forms.html

Doğrulama için ve formlar API'lerini kullanmak amacıyla, ngModel değerlerini #name="id" #id="ngModel" şeklinde ayarladım ve bu script hatası veriyor. Ancak #id="ngModel" değerini #id="ngForm" olarak ayarlarsam sorun çözülüyor. Ama benim durumumda model değerimi ngModel olarak ayarlamam gerekiyor.

Aşağıda benim html sayfam var.

 <form (ngSubmit)="onSubmit()" #myForm="ngForm">
  <div class="form-group">
  <label class="control-label" for="id">Employee ID</label>
    <input type="text" class="form-control" required [(ngModel)]="model.id" #name="id"  #id="ngModel" >
    <div [hidden]="id.valid || id.pristine" class="alert alert-danger">
      Employee ID is required
    </div>
  </div>
  <div class="form-group">
    <label for="name">Employee Name</label>
    <input type="text" class="form-control" [(ngModel)]="model.name" name="name" #name="ngModel" required>
        <div [hidden]="name.valid || name.pristine" class="alert alert-danger">
      Employee ID is required
        </div>
  </div>
  <div class="form-group">
    <label for="DOJ">DOJ</label>
    <input class="form-control" required [(ngModel)]="model.DOJ" name="DOJ" #DOJ="ngModel"  />
    <div [hidden]="DOJ.valid || DOJ.pristine" class="alert alert-danger">
      DOJ is required
    </div>
  </div>
  <button type="submit" class="btn btn-default" [disabled]="!myForm.form.valid">Submit</button>
</form>

Aşağıda benim sorunum var.

      EXCEPTION: Template parse errors:
       There is no directive with "exportAs" set to "ngModel" ("
         <div>
          <h1>My Form</h1>
             <form (ngSubmit)="onSubmit()" [ERROR ->]#myForm="ngModel">
             <div class="form-group>
            <label class="control-label" for="id">Employee"):AppComponent@3:34

Daha fazla soru ve cevapları kontrol ettim, çoğu Angular2 sürümünü RC4 olarak güncellemeyi söyledi, bu yüzden uygulamamı RC4'e güncelledim ama hala bu sorunla karşılaşıyorum.

Aşağıda benim ts dosyam var:

import {Component} from '@angular/core';
import { disableDeprecatedForms, provideForms , NgForm} from '@angular/forms';
import {CORE_DIRECTIVES, FORM_DIRECTIVES, FormBuilder,Validators,Control,ControlGroup } from '@angular/common';


@Component({
selector: 'ej-app',    
templateUrl: 'app/app.component.html',
directives: [ CORE_DIRECTIVES,FORM_DIRECTIVES]  
})
  export class AppComponent {
  model = new Employees(null,'','');
    onSubmit() { alert("values submitted")}
   constructor() {
     }
     }
        export class Employees {
         constructor( public id: number,public name: string, public DOJ: String ) {  }
}

Cevap #1

FORM_DIRECTIVES ve CORE_DIRECTIVES öğelerini içe aktarmayın çünkü bunlar kullanımdan kaldırılmıştır, bunun yerine NgForm öğesini içe aktardığınızdan emin olun. Aşağıdakileri kullanabilirsiniz:

import {FormGroup, FormBuilder, FormControl, Validators, NgForm } from '@angular/forms';

Cevap #2

Yeni ve eski formlar modülünü karıştırmayın.

import {CORE_DIRECTIVES, FORM_DIRECTIVES, FormBuilder,Validators,Control,ControlGroup } from '@angular/common';

forms öğelerini @angular/common üzerinden ithal eder. Eğer yeni formları kullanırsanız

bootstrap(AppComponent, [disableDeprecatedForms(), provideForms()])

yerine kullan

import {FORM_DIRECTIVES, FormBuilder,Validators,Control,ControlGroup } from '@angular/forms';

İlgili makaleler