2017-05-08 14 views
2

特定のラジオボタンがある角度2のコンポーネントがあります。私は特定の条件でラジオボタンをチェックします。ラジオボタンが角度2で正しく機能しない

ラジオボタンのHTMLコードのように行く:

<span class="radio-switch-group"> 
 
    <label> 
 
\t <input type="radio" name="radioView" id="All" (click)="onBtnClick('All')" [checked]="currentTab === 'All'"> 
 
\t <span class="radio-label">ALL Cars</span> 
 
    </label> 
 
    <label> 
 
     <input type="radio" name="radioView" id="Honda" (click)="onBtnClick('Honda')" [checked]="currentTab === 'Honda'"> 
 
     <span class="radio-label">Honda</span> 
 
    </label> 
 
</span>

次のようにTSファイルは次のとおりです。

 export class CarComponent implements OnInit{ 
     @Input() public currentTab: string = 'All'; 

     public onBtnClick(carType: string){ 
      this.currentTab = carType; 
     } 

     public ngOnInit() { 
      this.currentTab = 'All'; 
     } 
    } 

私はタブビューでこのコンポーネントをインスタンス化するとき他のコンポーネントの現在のタブが設定されていてもラジオボタンがチェックされていない「すべての」の代わり@Inputの

+0

、どこか他のチェックボックスの値が、私はタブで、このコンポーネントをインスタンス化しています – sainu

+0

をクリアされたコードを確認してください、それはしていませんそのシナリオの下で働く。 – hannah

答えて

0

()に、単に変数以下のように宣言します。

export class CarComponent implements OnInit{ 
    public currentTab: string = 'All'; 

    public onBtnClick(carType: string){ 
     this.currentTab = carType; 
    } 

    public ngOnInit() { 
     this.currentTab = 'All'; 
    } 
} 

@Inputはangular2に結合片道する責任があります。

希望すると助かります!

+0

試しましたが、それは仕事をしませんでした。 :( – hannah

+0

'@ Input'も双方向です。親要素がどのようにそれを使用しているかによって異なります。 – Cody

0

入力の属性バインド[value]を使用してみてください。 [selected]または[checked]をAngularで使用したIIRCは、本質的に次のことを行います。このコードは私のためにうまく働いている

if ([checked]===[value])

<span class="radio-switch-group"> 
 
    <label> 
 
\t <input type="radio" name="radioView" id="All" (click)="onBtnClick('All')" [value]="'All'" [checked]="currentTab"> 
 
\t <span class="radio-label">ALL Cars</span> 
 
    </label> 
 
    <label> 
 
     <input type="radio" name="radioView" id="Honda" (click)="onBtnClick('Honda')" [value]="'Honda'"[checked]="currentTab"> 
 
     <span class="radio-label">Honda</span> 
 
    </label> 
 
</span>

関連する問題