无法隐藏然后使用选择以角度4反应形式显示控件

时间:2017-07-27 17:30:10

标签: angular

我无法在使用Angular 4反应形式中嵌入的选择隐藏和显示控件之间切换。以下显示了问题:https://plnkr.co/edit/s7wYqy3Oa9eGmvOY3sNX?p=preview。如果您选择"名称"选项,地址字段将按预期隐藏。如果您选择"姓名和地址"选项之后,它不会显示。

以下是组件的模板:

<form [formGroup]="myForm" novalidate="">
  <div class="form-group">
    <label>Choose</label>
    <select class="form-control" formControlName="isNameOnly">
      <option *ngFor="let option of options" [value]="option.value">
        {{option.name}}
      </option>
    </select>
  </div>
  <div class="form-group">
    <label>Name</label>
    <input class="form-control" formControlName="name" />
  </div>
  <div class="form-group" [hidden]="myForm.controls.isNameOnly.value">
    <label>Address</label>
    <input class="form-control" formControlName="address" />
  </div>
  <pre>{{myForm.controls.isNameOnly.value}}</pre>
</form>

以下是组件的定义:

import { Component, Input, OnChanges }       from '@angular/core';
import { FormArray, FormBuilder, FormGroup } from '@angular/forms';

@Component({
  selector: 'my-form',
  templateUrl: './form.component.html'
})
export class MyFormComponent implements OnChanges {
  myForm: FormGroup;
  options = [
    {name: 'Name Only', value: true}, 
    {name: 'Name and Address', value: false}
  ];

  constructor(
    private fb: FormBuilder
  ) {
    this.myForm = this.fb.group({
      name: '',
      address: '',
      isNameOnly: false
    });
  }

  ngOnChanges() {}
}

1 个答案:

答案 0 :(得分:8)

更新隐藏到以下检查真实字符串

my_cl$Seg<-ifelse(my_cl$predict==0, 
              '1', 
              ifelse(my_cl$predict==1, '2','0'))

https://plnkr.co/edit/7ub2fy7CBdBA46i4qkvv?p=preview

我相信[hidden]="myForm.controls.isNameOnly.value == 'true'" 会返回一个字符串,而myForm.controls.isNameOnly.value会将其作为表达式进行评估,因为“true”或“false”都是非空字符串,所以隐藏总是如此