2016-10-19 14 views
2

私はangular2で始まります。私は単純なテンプレート駆動型を持っており、私はコンソールでデータにアクセスすることができます。しかし、私はデータを渡すことに問題があります。ここに私のコードです。提出されたフォームのデータにアクセスできません

import {Component} from "angular2/core"; 

@Component({ 
selector: 'my-template-driven', 
template:` 
    <h2>Sign-up form</h2> 
    <form (ngSubmit)="onSubmit(f)" #f="ngForm"> 
     <div> 
      <label for="email">Mail</label> 
      <input ngControl="email" type="text" id="email" required #email="ngForm"> 
      <span class="validation-error" *ngIf="!email.valid">Not Valid</span> 
     </div> 
      <div> 
      <label for="password">Password</label> 
      <input ngControl="password" type="text" id="password" required #password="ngForm"> 
      <span class="validation-error" *ngIf="!password.valid">Not Valid</span> 
     </div> 
      <div> 
      <label for="confirm-password">Confirm Password</label> 
      <input ngControl="confirm-password" type="text" id="confirm-password" required #passwordConfirm="ngForm"> 
      <span class="validation-error" *ngIf="!passwordConfirm.valid">Not Valid</span> 
     </div> 
     <button type="submit" [disabled]="!f.valid || password.value !== passwordConfirm.value">Submit</button> 
    </form> 
    <h2>You Submitted</h2> 


` 
}) 
export class TemplateDrivenFormComponent { 
user: {email: '', password: ''}; 

onSubmit(form){ 
    //console.log(form); 
    this.user.email = form.value['email']; 
    //this.user.password = form.controls['password'].value; 
} 

}

私は常にこのangular2.js:23941 ORIGINAL EXCEPTION: TypeError: Cannot set property 'email' of undefinedエラーを取得しています。送信されたフォームのデータにアクセスするにはどうすればよいですか。

+0

ユーザー:{email: ''、password: ''}; doesn; tは正しいようです。私はそれがこの 'user:any = {email: ''、password: '}};のようなものでなければならないと思う –

答えて

1

あなたは多分

user: any; 

constructor() { 
    this.user = {email: "", password: ""} as any; 
} 

:後のあなたはタイプを提供しなければならないことを宣言するか、あなたのコンストラクタでするときは、正しくローカルに宣言していない、とあなたはそれを初期化する必要があります。

関連する問題