2017-06-06 10 views
1

私は[確認] = "orderCheckoutRequest?.ORDER?.shippingOptionId === item.id" のラジオボタンを使用して、このラジオを事前に選択した場合、私はラジオボタン角度4ラジオ形式のcontrollが正しく

<div class="radio" *ngFor="let item of shipping?.availableOptions"> 
    <input type="radio" name="shipping" value="{{item.id}}" [checked]="orderCheckoutRequest?.order?.shippingOptionId===item.id" formControlName="shipping"> 
              {{item.name}} <strong>({{item.shippingCost.amount}} {{item.shippingCost.currency | lowercase}})</strong> 

</div> 

を持って働いていません私は別のルートを行くと、私のコンポーネントでこのような何かを行う場合は確かに、予め選択されているが、角度の形はそれを認識しないと(出荷オプションが必要とされているため)フォームが無効である

const shippingControl = this.checkoutForm.get("shipping"); 
const selectedShippingOptionId = option['shippingOptionId']; 
shippingControl.patchValue(selectedShippingOptionId); 
  1. 私は、ブラウザで表示]ボタンがすべて
  2. で選択されていないレンダリングするとき、私はので、別のHTTP要求をトリガ:コントロールが値を持っていますが、私は2つの問題点を持っているので、3210は、その後、角の形のために、これは、有効です私はスキップ(1)でこの問題を修正しようとしているが、これは、いくつかのためにすべてで表彰されていない

    shippingControl.valueChanges.skip(1).subscribe(data => { this.cartService.updateShippingForOrder(); })

:ngOnInit()で私はこのようなshippingControlに加入しています理由。 ありがとう

答えて

0

"radioSelected"というフラグを押してshipping?.availableOptionsアレイにします。 デフォルトでは、値をfalseに設定します。 orderCheckoutRequest?.order?.shippingOptionId===item.id が満たされると、対応する「radioSelected」値をtrueに更新します。

変更

<input type="radio" name="shipping" value="{{item.id}}" [checked]="item.radioSelected" formControlName="shipping"> 
とHTMLテンプレート [checked]
関連する問題