2016-07-26 35 views
3

角2のフォームを検証に使用しようとしていますが、複数のコントロールを追加しようとしています。それはちょうど無視されるように思えます。私は他の人がどのようにそれをするのかを見るために多くの異なるガイドをたどってきましたが、それらの方法のどれもうまくいかないようです。角2のフォーム "コントロールが見つかりません"

私は何をやっていることは、私のテンプレートでこれです:

<form [formGroup]="form" novalidate (ngSubmit)="save(form.valid)"> 
<div class="row" id="message-wrapper"> 
    <label>Message</label> 
    <small [hidden]="form.controls.message.valid || (form.controls.message.pristine && !submitted)"> 
     Message is required (minimum 10 characters). 
    </small> 
    <textarea 
     class="textarea-scaled" 
     type="text" 
     [(ngModel)]="campaign.message" 
     formControlName="message" 
     placeholder="This will be sent out by supporters with a URL back to this campaign"> 
    </textarea> 
</div> 

<div class="row" id="promo-wrapper"> 
    <label>Promotion: </label> 
    <small [hidden]="form.controls.promotion.valid ||(form.controls.promotion.pristine && !submitted)"> 
     Promotion is required and should be between 10 and 100 characters 
    </small> 
    <textarea 
     class="textarea-scaled" 
     type="text" 
     [(ngModel)]="campaign.promotion" 
     formControlName="promotion" 
     placeholder="What would you like to be sent out in promotional messages?"> 
    </textarea> 
</div> 
</form> 

はその後、私のコンポーネントで、私はこれを行う:

form: FormGroup; 

    constructor(private builder: FormBuilder, 
       private _dataservice: DataService) { 

     this.form = builder.group({ 
      "message": ['', [Validators.required, Validators.minLength(10)]], 
      "promotion": ['', [Validators.required, Validators.minLength(10)]] 
     }); 
    } 

しかし、私は「コントロールを見つけることができません 『プロモーション』を」得続けますコンソールエラー...

何か助けていただければ幸いです!

+0

あなたはコンポーネントに 'REACTIVE_FORM_DIRECTIVES'を追加しましたか? – micronyks

+0

ええ、それは私の指示にあります。申し訳ありませんが私はそれを示していませんでした。 –

+0

プランナーで再現していただけますか? – micronyks

答えて

4

これは元の質問に対する回答ではないかもしれませんが、Googleからここにジャンプした場合に役立ちます。

これらのことを確認する必要があります。

  1. あなたはその後、([ngModelOptions]="{standalone: true}"を追加する最初のルールを覚えて、あなたが検証からいくつかのフィールドを除外した場合[ngModel]

  2. を持っているすべてのコントロールのための「name」属性を持っている必要があり、まだあなたには、「名前を必要とします")

  3. 有効となるコントロールには、formControlName属性があることを確認してください。 (最初のルールを覚えておいてください)

+0

そうではありませんが、FormGroupの初期化で**キー**を宣言するのを忘れたのでエラーが発生しました。 – manatico

+0

'formControlName'がある場合は、' name' attrは必要ありません。 –

1

私のコンポーネントに新しいFormGroupを作成しようとしました。 ReactiveFormsModuleを角度/フォームからインポートし、app.module.ts importsに追加しました。

が、私はの名前を見つけることができませんなっていた「FormGroup」は名前を見つけることができません「FormControl」エラーはここで

は私のコンポーネント私の解決コンポーネントで以下のimport文を追加

export class SignupFormComponent { 
    form1 = new FormGroup({ 
    username: new FormControl(), 
    password: new FormControl() 
    }); 
} 

です問題。

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

ないあなたの質問への答えが、同じエラーに直面している人を助けるかもしれない。このよう投稿。

関連する問題