2016-11-24 9 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を参照してくださいということです何が不足しているかのコードで

Plunker example

をいくつかの小さな問題を修正しましたボーン、デフォルトのAppModule "*、あなたのモジュールが使用されていないようです。 – jonrsharpe

+0

main.tsファイルをplunkから質問にコピーしました。モジュールがそこで使われているので、それは問題ではありません、そうですか?あるいは、私は誤解したかもしれませんか? – EricC

+0

私は、Plunkrのコンソールでは、 – jonrsharpe

答えて

3

あなたがあなたの設定が適切に設定されていないように思われたので、私は新しいPlunkerを構築し始めました。ベアを作り、私はまた、フォームコントロールがControlValueAccessor

+0

**フォーム=新しいFormGroup({ 市:新しいFormControl( })を追加して確認できますか?ありがとう:) Btw、ここでは、広範な角度2スターターセットアップを取得しましたか?あなた自身または別の方法ですか? – EricC

+0

ちょうど '[New | V] 'ボタンを押してください。 Angular2 GitHubリポジトリに新しい問題を作成した場合、課題テンプレートにはPlunkerテンプレート(Angularチームによって管理されているテンプレート)へのリンクも用意されています。 –

+1

もう一度いいチップのおかげで:) – EricC

関連する問題