2017-10-26 5 views
0

新しいフォームを作成したり、既存のフォームを読み込んだり編集したりするためのテンプレートを持つフォームがあります。ラジオボタンのフィールドセットにデータバインディングを適用して、データベースからのデータに応じてそれらを切り替えるようにしました。その際、* ngIfは他のdivの可視性を切り替えるために何らかの理由で動作しなくなりました。 (可視性トグル作品)の前に* ngデータバインディングの適用後にdivが表示されなくなっても表示されないようにする

:後

<div class="col-xs-12 col-sm-12"> 
    <fieldset> 
     <input type="radio" formControlName="specificPilot" value="1" [ngClass]="{'td-radio-error': displayMessage.specificPilot}" (check)="radioSetValidator(changeForm.get('generalQuestionsFG.specificPilot'),[changeForm.get('generalQuestionsFG.pilotTransits')])">Yes 
     <input type="radio" formControlName="specificPilot" value="0" [ngClass]="{'td-radio-error': displayMessage.specificPilot}" (check)="radioSetValidator(changeForm.get('generalQuestionsFG.specificPilot'),[changeForm.get('generalQuestionsFG.pilotTransits')])">No 
     {{this.changeForm.get('generalQuestionsFG.specificPilot').value}} 
    </fieldset> 
</div> 
<div class="col-xs-12 col-sm-12"> 
    <textarea class="form-control" rows="2" formControlName="pilotTransits" style="width:100%" placeholder="Provide Transits for Pilot(s)" 
    *ngIf="changeForm.get('generalQuestionsFG.specificPilot').value==='1'"></textarea> 
</div> 

(データバインディング作品が、視界のトグルにはありません):

<div class="col-xs-12 col-sm-12"> 
    <fieldset> 
      <input type="radio" formControlName="specificPilot" [value]="1" [ngClass]="{'td-radio-error': displayMessage.specificPilot}" (check)="radioSetValidator(changeForm.get('generalQuestionsFG.specificPilot'),[changeForm.get('generalQuestionsFG.pilotTransits')])">Yes 
      <input type="radio" formControlName="specificPilot" [value]="0" [ngClass]="{'td-radio-error': displayMessage.specificPilot}" (check)="radioSetValidator(changeForm.get('generalQuestionsFG.specificPilot'),[changeForm.get('generalQuestionsFG.pilotTransits')])">No 
      {{this.changeForm.get('generalQuestionsFG.specificPilot').value}} 
    </fieldset> 
</div> 
<div class="col-xs-12 col-sm-12"> 
    <textarea class="form-control" rows="2" formControlName="pilotTransits" style="width:100%" placeholder="Provide Transits for Pilot(s)" 
    *ngIf="changeForm.get('generalQuestionsFG.specificPilot').value==='1'"> </textarea> 
</div> 

誰かが* ngIfチェック理由を説明することができるだろうラジオボタンコントロールの値がもう機能していないのですか?値が正しく変更されているかどうかを確認するためにstubcodeを追加しました。

+1

あなたのコードはb/cを読むのが難しく、水平スクロールと無関係な情報がたくさんあります。不要な情報を削除することを検討してください。どのラインが問題の '* ngIf'を持っていますか? – BeetleJuice

+0

申し訳ありませんが、フォーマットを修正しました。両方の例の2番目の最後の行に* ngIfが表示されます。最初の例は、2番目の例の3行目と4行目に示すように、両方のラジオボタンのvalueプロパティにデータバインディングを追加する前に機能しました。 – David

答えて

3

<input value="1">を入力すると、値は文字列"1"になります。

<input [value]="1">を入力すると、値は1になります。

厳密に等価であるため、ブレークします。

+0

これはそれで、私はばかだ。どうもありがとうございます。 – David

関連する問題