2

私はAngular 2 Beta "FormBuilder"でネストされたフォームグループ構造を使用していますが、私にとってはネストされたフォームグループに値を取得できません。バインディングはうまくいくので奇妙です。フォームに「ユーザー」オブジェクトを送信して、ユーザーとそのアドレスのすべての値を入力します。しかし、(HttpPostに)フォームの値を送信するとき、それは以下のオブジェクトのように見えます。角2のネストされたフォームグループにヌル値が含まれています

FWIW私はMosh Hamedaniの優れたAngluar 2コースをUdemyにフォローしています。関連コードはここに一致します:https://github.com/mosh-hamedani/angular2-course

おそらく私のコードで他にどこを調べる必要があるのでしょうか?

私のフォームグループは、{{form.value | JSON}}私の形態の末尾:

{ 
"name": "Leanne Graham", 
"email": "[email protected]", 
"phone": "1-770-736-8031 x56442", 
"address": { 
    "street": null, 
    "suite": null, 
    "city": null, 
    "zipcode": null 
    } 
} 

これは私のコンポーネントでコンストラクタである:

<div class="col-md-6 well"> 
     <!--the "fieldset" element is needed for this kind of grouped layout.--> 
     <form [ngFormModel]="form" (ngSubmit)="save()"> 
      <fieldset> 
       <legend>User</legend> 
       <div class="form-group"> 
        <label>Name</label> 
        <input type="text" [(ngModel)]="user.name" ngControl="name" #name="ngForm" class="form-control"> 
        <div class="alert alert-danger" *ngIf="name.errors && name.touched"> 
         The user name is required. 
        </div> 
       </div> 
       *** Email and Phone similar *** 
      </fieldset> 
      <fieldset ngControlGroup="address"> 
       <legend>Address</legend> 
       <div class="form-group"> 
        <label>Street</label> 
        <input type="text" [(ngModel)]="user.address.street" ng-control="street" class="form-control"> 
       </div> 
       *** suite, city, and zip similar *** 
      </fieldset> 
      {{ form.value | json }} 
      <button [disabled]="!form.valid" class="btn btn-primary" type="submit">Save</button> 
     </form> 
    </div> 

constructor(
     fb: FormBuilder, 
     private router: Router, 
     private usersService: UsersService, 
     private params: RouteParams 
    ){ 
     this.form = fb.group({ 
      name: ['', Validators.required], 
      email: ['', EmailValidators.mustBeEmail], // I hadn't considered the obvious: if it doesn't exist it also doesn't qualify as email. 
      phone: [], 
      address: fb.group({ 
       street: [], 
       suite: [], 
       city: [], 
       zipcode: [] 
      }) 
     }); 
    } 

これは私のテンプレートのフォーム(簡潔にするため切り捨て)であります

答えて

0
ng-control="street" 

でなければなりません

ngControl="street" 

あなたと同じようにname

関連する問題