2017-10-02 17 views
0

私のフォームからのユーザー入力に基づいて、if文のリストを埋め込むための簡単なWebアプリケーションを構築しようとしています。残念ながら、送信されたデータの要素は、ユーザーが送信をクリックする前に技術的に定義されていないため、何もできません。とにかくこれを回避するために私にはありますか?そうでない場合は、どうすればいいですか?私はAngularとTypescriptにはかなり新しいです。あなたは全体のコードをチェックしたい場合 ここに私のレポです:https://github.com/mlzaleski/VoogdVoogd-project(Angular2/4)エラーの回避TypeError:nullのプロパティを読み取ることができません

マイ送信者のコンポーネント:

@Component({ 
selector: 'user-form', 
templateUrl: './user-form.component.html', 
styleUrls: ['./user-form.component.css'] 

export class UserFormComponent implements OnInit { 

rForm; 

constructor(
    private fb: FormBuilder, 
    private userDataService: UserDataService, 
) { 

} 

onSubmit(data) {  
    this.userDataService.pushData(data); 

} 

ngOnInit() { 
    this.rForm= new FormGroup({ 
    name: new FormControl(""), 
    use: new FormControl(""), 
    duration: new FormControl(""), 
    yearOfLicense: new FormControl(""), 
    postcode: new FormControl(""), 
    licensePlate: new FormControl(""), 
    milageYear: new FormControl(""), 
    milageVehicle: new FormControl(""), 
    passengerCare: new FormControl(""), 
    towing: new FormControl(""), 

    }) 
} 

}

マイサービス:

Injectable() 
export class UserDataService { 
    private userDataSubject: BehaviorSubject<any>; 
    constructor() { 
    this.userDataSubject = new BehaviorSubject(null); 
    } 
    pushData(data) { 
    this.userDataSubject.next(data); 
    } 
    getData() { 
    return this.userDataSubject.asObservable(); 
    } 
} 

受信コンポーネント:

export class UserDataComponent implements OnInit { 
    public userData = {}; 

    public constructor(
    private userDataService: UserDataService, 



) {} 


    ngOnInit() { 
    this.userDataService 
     .getData() 
     .subscribe(data => { 
     this.userData = data; 
     // My If statements down here 
     // e.g. If (data.name === "Hello") { 
        Do something } - TYPE ERROR ' name' defined. 
+0

はconsole.log(データを)読んだものを与えますか?とtry:If(data.name && data.name === "Hello") – Wandrille

+0

名前、使用、yearOfLicense [...] –

答えて

0

あなたrFormが

this.rForm= new FormGroup({ 
    name: null, 
    use: null, 
    ... 
}) 

ようにする必要があり、サブスクリプションでは約Reactive Form

+0

などのフォームの値を持つオブジェクトを私に与えます。 formGroupの子を設定するにはformControlが必要です –

+0

私はそうではないと思います。 this.rForm = new FormGroup({name: "bla-bla"、use:3、duration:34.2})を記述すると、フォームにこれらのデータが表示されます – Eliseo

関連する問題