2016-11-24 6 views
1

'form'의 알려진 속성이 아니기 때문에 'formGroup'에 바인딩 할 수 없습니다.'formGroup'에 바인딩 할 수 없습니다.

왜이 오류 메시지가 나타 납니까?

실례로 내 plunk을 참조하십시오.

파일 app.module.ts :

import { NgModule } from '@angular/core'; 
import { BrowserModule } from '@angular/platform-browser'; 
import { ReactiveFormsModule } from '@angular/forms'; 

import { AppComponent } from './app.component'; 
import { CustomInputComponent } from './custom-input.component'; 


@NgModule({ 
    imports: [ 
    BrowserModule, ReactiveFormsModule 
    ], 
    declarations: [ 
    AppComponent, CustomInputComponent 
    ], 
    providers: [ 

    ], 
    bootstrap: [ AppComponent ] 
}) 
export class AppModule { } 

파일 main.ts :

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 

import { AppModule } from './app.module'; 

platformBrowserDynamic().bootstrapModule(AppModule); 

파일 app.component.ts :

import { Component, OnInit } from '@angular/core'; 
import { FormBuilder, FormGroup, Validators, AbstractControl } from '@angular/forms'; 

@Component({ 
    moduleId: module.id, 
    selector: 'my-app', 
    template: ` 
<h2>Testing Angular 2: custom form input</h2> 

<form [formGroup]="form" (ngSubmit)="submit()"> 
    <custom-input [name]="city" [formControl]="city"></custom-input> 
</form> 
` 
}) 
export class AppComponent implements OnInit { 
    private form: FormGroup; 
    private city: AbstractControl; 

    constructor(private fb: FormBuilder) {} 

    ngOnInit() { 
    this.form = this.fb.group({ 
     'city': 'London' 
    }); 
    this.city = this.form.controls['city']; 
    } 

    submit() { 
    let formValues = this.form.value; 
    console.log('submit',JSON.stringify(formValues)); 
    } 
} 

파일 맞춤 input.compontent .ts :

import { Component } from '@angular/core'; 
import { AbstractControl } from '@angular/forms'; 

@Component({ 
    moduleId: module.id, 
    selector: 'custom-input', 
    template: '<input [name]="name" [id]="name" [formControl]="formControl" type="text">' 
}) 

export class CustomInputComponent { 
    @Input() name: string; 
    @Input() formControl: AbstractControl; 

    constructor() {} 
} 
+0

* "아니 AppModule을 구현하지하는 점이다 베어를 만들기 뼈대, 기본 AppModule "*, 당신의 모듈이 사용되지 않는 것 같습니다. – jonrsharpe

+0

main.ts 파일을 plunk에서 질문에 복사했습니다. 모듈이 거기서 사용되므로 문제가되지 않습니다. 맞습니까? 아니면 내가 잘못 이해 한 것일까 요? – EricC

+0

Plunkr에서 콘솔에있는 것을 의미합니다. – jonrsharpe

답변

3

당신이 제대로 설정되지 않은 것 같아 새로운 Plunker 건물을 만들기 시작했습니다. 또한 코드에서 몇 가지 작은 문제를 해결

Plunker example

무엇 실종하는 사용자 정의 요소는 폼 컨트롤의 요구로 사용하기 위해 ControlValueAccessor 내가 볼

+0

고마워요 :) Btw, 당신은 두드러진 Angular 2 starter setup을 어디서 얻었습니까? 너 자신이나 다른 길? – EricC

+0

그냥'[New | V] 버튼을 누릅니다. Angular2 GitHub 저장소에 새로운 문제를 만들면 문제 템플릿은 Plunker 템플릿 (Angular 팀에서 관리하는 템플릿)에 대한 링크도 제공합니다. –

+1

좋은 팁을 주셔서 다시 한번 감사드립니다 :) – EricC

관련 문제