Я пытаюсь создать динамический генератор форм на основе шаблона Angular's Dynamic Forms с использованием Angular 7, и я сталкиваюсь с проблемой css.Я использую Bootstrap 4.0, и я надеюсь, что это не проблема, где мне нужно вернуться к 3.0 (у меня была предыдущая проблема, которая включала это, но правильное перекодирование заставило его работать в 4.0).Если это так, пожалуйста, дайте мне знать.
Теперь, вот как мое приложение работает правильно для моего конечного продукта.Мой код для создания выпадающих списков:
<div class="row">
<div *ngFor="let question of questions" class="col-md-6 form-group">
<label for="{{question.key}}">{{question.label}}</label>
<span [ngSwitch]="question.controlType">
<select *ngSwitchCase="'dropdown'"
[id]="question.key"
[formControlName]="question.key"
[className]="question.fieldClass">
<option *ngFor="let opt of question.options" [ngValue]="opt.value">{{opt.name}}</option>
</select>
</span>
<span class="help-block error" *ngIf="isFormTouchedAndInvalid(question.key)">{{question.label}} is invalid</span>
</div>
</div>
Когда это отображается на экране, раскрывающиеся списки выровнены правильно, с правильной шириной, как вы можете видеть:
Теперь, если я буду следовать методу Angular, мой основной кодовый блок станет:
<div class="row">
<app-question *ngFor="let question of questions" [question]="question" [form]="form"></app-question>
</div>
И мой компонент приложения-вопрос имеет следующий код:
<div [formGroup]="form">
<div class="col-{{question.colType}}-{{question.colWidth}} form-group">
<label for="{{question.key}}">{{question.label}}</label>
<span [ngSwitch]="question.controlType">
<select *ngSwitchCase="'dropdown'"
[id]="question.key"
[formControlName]="question.key"
[className]="question.fieldClass"
>
<option *ngFor="let opt of question.options" [ngValue]="opt.value">{{opt.name}}</option>
</select>
</span>
<span class="help-block error" *ngIf="isFormTouchedAndInvalid(question.key)">{{question.label}} is invalid</span>
</div>
</div>
Когда форма отображается на экране, она выглядит следующим образом:
Как видите, ширина столбцапропали.Я уверен, что это как-то связано с тегом div, содержащим атрибут FormGroup, но это необходимо для компиляции и работы компонента.Я попытался добавить его с помощью тега span, добавить класс col-md-6 в тот же тег, что и FormGroup, но получаю тот же неправильный CSS-рендеринг.
Это еще одна проблема Bootstrap 4, в которой яможет понадобиться перейти к Bootstrap 3, чтобы это работало?Если нет, что происходит и как я могу заставить страницу правильно отображаться, как первое изображение, и в то же время иметь возможность использовать компонент app-question в моем коде?