2016-10-25 21 views
11

Hala bu konuda yeni ve öğreticilerle öğreniyorum, ancak bir nedenden dolayı, benzersiz kullanıcı adını test etmeye çalışırken mesajı No provider for formbuilder alıyorum. Neden bu iletiyi aldığımı bilmiyorum, ancak bir çözüm bulamıyorum. Bana bunun neden olduğunu söyleyen var mı? EğerkullandığınızFormBuilder için Sağlayıcı Yok

kayıt-component.ts

import {Component} from '@angular/core'; 
import {ControlGroup, Control, Validators, FormBuilder} from '@angular/common' 
import {UsernameValidators} from './usernameValidators' 

@Component({ 
selector: 'signup', 
templateUrl: 'signup-component.html' 

}) 
export class SignupComponent{ 
    form: ControlGroup; 

    constructor(fb: FormBuilder){ 
    this.form = fb.group({ 
     username:['', Validators.compose([ 
      Validators.required, UsernameValidators.cannotContainSpace 
     ])], 
     password: ['', Validators.required] 
    }) 
    } 
} 

usernameValidators.ts

import {Control} from '@angular/common' 


export class UsernameValidators{ 

    static shouldBeUnique(control: Control){ 
    return new Promise((resolve, reject) => { 
     setTimeout(function(){ 
     if(control.value == "andy") 
      resolve({shouldBeUnique: true}); 
     else 
      resolve(null); 
     }, 1000); 

    }); 

    } 


    static cannotContainSpace(control: Control){ 
    if (control.value.indexOf(' ') >= 0) 
     return {cannotContainSpace: true}; 

    return null; 
    } 
} 

cevap

27

İthalat ReactiveFormsModule ve modülde FormsModule

@NgModule({ 
    imports: [ 
     BrowserModule /* or CommonModule */, 
     FormsModule, ReactiveFormsModule 
    ], 
    ... 
}) 
+2

Teşekkürler! Çalıştı, bu – sabin

+0

ReactiveFormsmodule ve FormsModule aynı modülde birlikte alınmamalıdır app.module.ts içinde ReactiveFormsModule ithal ettim – DAG

+0

@dag Neden? '' Daha gitmek için ... ' – tom10271

İlgili konular