动态形式Angular2.条件字段可见性



我只想在使用动态表单的另一个字段中有具体值时显示字段。

我为类QuestionBase(app/question-base.ts)定义了一个新属性"condition:boolean"我的意图是当另一个领域具有具体价值时,以普通的方式展示它。我将此字段命名为"条件"

我想我必须在app/dynamic-form-question.component.html的标签中包含任何像*ngIf这样的句子,以注入个性化条件,但我被卡住了。*ngIf在条件定义为字符串时不计算question.condition。我找不到任何解决方案来将app/questions.service.ts.中的表达式定义为布尔值

e.g.
      new TextboxQuestion({
        key: 'conditional',
        label: 'Conditional Field',
        type: 'text',
        condition: brave.value == solid, (something like this, brave is other field in this form)
        order: 5
      })

然后a将读取更改可见性的条件表达式。

    <input *ngSwitchCase="'textbox'" [formControlName]="question.key"
            [id]="question.key" [type]="question.type">
    <select [id]="question.key" *ngSwitchCase="'dropdown'" [formControlName]="question.key">
      <option *ngFor="let opt of question.options" [value]="opt.key">{{opt.value}}</option>
    </select>
  </div> 

这是一个灌篮器。该示例来自angular2教程,并进行了一些更改
我搜索了很多关于动态形式的内容,可能是因为我是Angular2的初学者。

非常感谢

给输入一个:'ngControl="questionKey"'或任何你喜欢的东西,它将在顶部questionKey:Control的类中定义。然后在select元素上添加*ngIf="questionKey.value",如果value为true,它将显示该元素。对于更具体的输入,在输入框和开关上运行验证

*ngIf="questionKey.value" to *ngIf="questionKey.valid"

这就是我通常的做法

最新更新