Angular 根据单选按钮选择,使用基于模板的表单填充字段进行单选按钮绑定

Angular 根据单选按钮选择,使用基于模板的表单填充字段进行单选按钮绑定,angular,typescript,angular4-forms,Angular,Typescript,Angular4 Forms,我有一张有三个单选按钮的表格。默认情况下选择第一个。第二个必须有条件地显示一个输入字段,只要单击它。在选择第三个选项时,用一些值填充该输入字段 div> <h2>{{title}}</h2> <label class="form_label" for="account">Output Type</label> <div class="output_row_styles"> <

我有一张有三个单选按钮的表格。默认情况下选择第一个。第二个必须有条件地显示一个输入字段,只要单击它。在选择第三个选项时,用一些值填充该输入字段

div>
      <h2>{{title}}</h2>
      <label class="form_label" for="account">Output Type</label>
      <div class="output_row_styles">
        <span><input type="radio" [value]="pdf" name="output"  (click)="outputType ='pdf'" [checked]="outputType =='pdf'"> PDF</span>
        <span><input type="radio" [value]="email" name="output" (click)="outputType ='email'" [checked]="outputType =='email'"> Email </span>
        <span><input type="radio" [value]="legal" name="output" (click)="outputType ='transfer'" [checked]="outputType =='transfer'"> Transfer</span>
      </div>
      <div *ngIf = "outputType == 'email' || outputType == 'transfer'" class="output_type_div">
          <div class="row_styles">
          <label class="form_label" for="recipient_email">Recipient E-mail address</label>
          <input type="text" [value]="outputType == 'transfer' ? 'abc@xyz.com' : ''" name="recipient_email" class="input-text"  [(ngModel)]="recipientEmailAddress"
            required/>
      </div>
    </div>
div>
{{title}}
输出类型
PDF
电子邮件
转移
收件人电子邮件地址
按顺序单击它们,即(第二次和第三次)可以正常工作。但选择第一个时选择第三个不会填充字段


试图找到任何相关的解决方案或问题,但没有帮助。

可能是一个更改检测问题。但不确定。您可以改用
[隐藏]

<div [hidden] = "outputType != 'email' && outputType != 'transfer'" class="output_type_div">
          <div class="row_styles">
          <label class="form_label" for="recipient_email">Recipient E-mail address</label>
          <input type="text" [value]="outputType == 'transfer' ? 'abc@xyz.com' : ''" name="recipient_email" class="input-text"  [(ngModel)]="recipientEmailAddress"
        required/>
  </div>

收件人电子邮件地址

根据答案更新了我的代码,并使用了更优化的代码:

div>
      <h2>{{title}}</h2>
      <label class="form_label" for="account">Output Type</label>
      <div class="output_row_styles">
        <span><input type="radio" [value]="pdf" name="output"  (click)="outputType ='pdf'" [checked]="outputType =='pdf'"> PDF</span>
        <span><input type="radio" [value]="email" name="output" (click)="outputType ='email'" [checked]="outputType =='email'"> Email </span>
        <span><input type="radio" [value]="legal" name="output" (click)="outputType ='transfer'" [checked]="outputType =='transfer'"> Transfer</span>
      </div>
      <div [hidden] = "outputType == 'pdf'" class="output_type_div">
          <div class="row_styles">
          <label class="form_label" for="recipient_email">Recipient E-mail address</label>
          <input type="text" [value]="outputType == 'transfer' ? 'abc@xyz.com' : ''" name="recipient_email" class="input-text"  [(ngModel)]="recipientEmailAddress"
            required/>
      </div>
    </div>
div>
{{title}}
输出类型
PDF
电子邮件
转移
收件人电子邮件地址