2016-07-05 31 views
12

Angular 2 RC4'teki formları deniyorum. Her çalışan güzel ama ben app başlattığınızda tarayıcı konsolu Bana bu mesajı veriyor:Angular 2'deki Formlar RC4

benim bileşeninin ilgili kısmı aşağıdaki gibidir
*It looks like you're using the old forms module. This will be opt-in in the next RC, and will eventually be removed in favor of the new forms module. 

:

import { 
    FORM_DIRECTIVES, 
    REACTIVE_FORM_DIRECTIVES, 
    FormBuilder, 
    FormGroup 
} from '@angular/forms'; 
import {Observable} from "rxjs/Rx"; 

@Component 
({ 
    selector: "hh-topbar", 
    moduleId: module.id, 
    templateUrl: "topBar.component.html", 
    directives: [HHPagerComponent, FORM_DIRECTIVES, REACTIVE_FORM_DIRECTIVES] 
}) 

export class HHTopBarComponent implements OnChanges, OnInit 
{ 
    ... 
    private filterForm: FormGroup; 
    private title$: Observable<string>; 

    constructor(private formBuilder: FormBuilder) 
    { 
    } 

    public ngOnInit(): any 
    { 
     this.filterForm = this.formBuilder.group 
     ({ 
      "title": [this.info.filters.searchFileName] 
     }); 

     this.title$ = this.filterForm.controls["title"].valueChanges; 
     this.title$.subscribe(val => 
     { 
      this.info.filters.searchFileName = val; 
      this.filterChanged.emit(this.info.filters); 
     }); 
    } 
} 

Ve şablonumun ilgili bölümünün şuna benzer:

<form [formGroup]="filterForm"> 
    <div> 
     <label for="title">Title</label> 
     <input [formControl]="filterForm.controls['title']" id="title" /> 
    </div> 
</form> 

herkes burada yeni formlar uyarı bahsediyor ve hangi direktifler değiştirmek ve ne kadar olacak modülü ne olduğunu biliyor mu?

Başvurunuzu işe koşulması zaman açıkça kaldırılan formu desteğini devre dışı bırakmak gerekir
+0

neyin kullanımını: FormBuilder Oysa

import {disableDeprecatedForms, provideForms} from '@angular/forms'; bootstrap(AppComponent, [ disableDeprecatedForms() provideForms() ]); 

kaldırılmış değildir, bunun yerine doğrudan FormGroup sınıfını kullanabilirsiniz REACTIVE_FORM_DIRECTIVES burada mı? –

cevap

16

:

this.filterForm = new FormGroup({ 
    title: new FormControl('', Validators.required) 
}); 
+0

Bu, doğrudan FormGroup sınıfını kullanmayla ilgili ipucunuza hile ve teşekkür etti. Çok yararlı. Bildiğiniz kadarıyla, kullandığım form yönergeleri gerçek ilk sürümde yer alacak mı? – hholtij

+0

Rica ederim! Doğru form direktiflerini kullanırsınız ;-) Eğer sorunuz buysa ... –

+0

"REACTIVE_FORM_DIRECTIVES" in kullanımı @ThierryTemplier? –