我只想在使用动态表单的另一个字段中有具体值时显示字段。
我为类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"
这就是我通常的做法