2016-09-23 16 views
12

Właśnie widziałem ten question, ale nadal mam ten sam błąd. Mam wspólny moduł, który importuję do mojego modułu funkcji. Ale spróbowałem bezpośrednio importować moduły FormsModule, ReactiveFormsModule do mojego modułu funkcji.Nie można powiązać z FormGroup, ponieważ nie jest to znana właściwość "formularza" (formularz FormsModule, załadowany moduł ReactiveFormsModul)

Angular 2.0 Wersja ostateczna.

Mój wspólny moduł jest:

import { CommonModule } from '@angular/common'; 
import { NgModule } from '@angular/core'; 
import { FormsModule, ReactiveFormsModule } from '@angular/forms'; 
import { UPLOAD_DIRECTIVES } from 'ng2-uploader/ng2-uploader'; 


import { UploadComponent } from './upload/index'; 

import { AuthenticationService } from './services/index'; 

@NgModule({ 
    declarations: [ UploadComponent, UPLOAD_DIRECTIVES ], 
    imports: [ CommonModule ], 
    providers: [ AuthenticationService ], 
    exports: [ 
    FormsModule, 
    CommonModule, 
    UploadComponent, 
    ReactiveFormsModule 
    ] 
}) 

export class SharedModule { } 

Mój moduł cecha:

import { NgModule } from '@angular/core'; 

import { SharedModule } from '../shared/shared.module'; 

import { LoginComponent } from './login.component'; 

@NgModule({ 
    imports: [ SharedModule ], 
    declarations: [ LoginComponent ], 
    exports: [ LoginComponent ] 
}) 

export class LoginModule { 
    constructor() {} 
} 

Komponent:

import { Component } from '@angular/core'; 
import { FormGroup, FormControl, FormBuilder, Validators } from '@angular/forms'; 
import { AuthenticationService } from '../shared'; 

@Component({ 
    selector: 'pol-login', 
    templateUrl: 'login.component.html' 
}) 
export class LoginComponent { 
    loginForm: FormGroup; 
    notValidCredentials: boolean = false; 
    showUsernameHint: boolean = false; 

    constructor(
    fb: FormBuilder, 
    private authenticationService: AuthenticationService) { 

     this.loginForm = fb.group({ 
     username: ['', Validators.compose([Validators.required, this.emailValidator])], 
     password: ['', Validators.required] 
     }); 
... 
} 

I widok:

<form class="container" (ngSubmit)="authenticate()" [ERROR ->][FormGroup]="loginForm"> 
.... 
</form> 

Wszystkie ścieżki i import są poprawne. Jakieś pomysły? Dzięki.

------ [ROZWIĄZANIA] -------

Zmienione [FormGroup]="loginForm" do [formGroup]="loginForm" :(

+4

Zmień to na '[formGroup]' (camelCase, nie PascalCase) i zobacz, co stanie się dalej? –

+0

Dzięki Harry. W formularzu Module @angular .... nie ma wyeksportowanego elementu '' 'formGroup'''. –

+0

Przepraszam Harry. Tak to działa. Zmieniłem go w module, a nie w widoku. Przepraszam i dziękuję bardzo :) –

Odpowiedz

14

Rozwiązanie:

import { ReactiveFormsModule } from '@angular/forms' 

importu ten moduł aplikacji. module.ts lub klasa Component. (Zalecana do importu w app.module.ts)

Następnie Direct it ... ex: - -

imports: [ 
    ReactiveFormsModule 
] 
+0

Już importuję w app.module.ts, ale wciąż otrzymuję ten sam BŁĄD. – Chaudhary

+0

Prosimy o komentarz z następującymi szczegółami: W której wersji projektu kątowego pracujesz? Czy pojawia się problem podczas korzystania z FormGroup w oknie dialogowym materiałów? –

0

Może być Przegapiłeś zaimportować moduł ReactiveFormsModule do [yourmoduleName] .module.ts

import { FormGroup, FormControl, FormBuilder, Validator, ReactiveFormsModule } from '@angular/forms'; 

i dodają poniżej zaimportować komponent gdzie używasz FormBuilder lub formGroup

imports: [ReactiveFormsModule]