Создание элемента div внутри n-го дочернего элемента в Angular 4

Добавить разрешение [Domain Users] к вашей безопасности в Интернете.

  • Щелкните правой кнопкой мыши на своем сайте в IIS в папке «Сайты»
  • Нажмите «Редактировать разрешения» ...
  • Выберите вкладку «Безопасность»
  • В разделе «Группа» или «Пользовательские имена» нажмите кнопку «Изменить»
  • . В окне «Разрешения» под именами групп или пользователей нажмите «Добавить». ...
  • Введите [имена пользователей домена] в именах объектов, чтобы выбрать текстовую область, и нажмите «ОК», чтобы применить изменение
  • Нажмите «ОК», чтобы закрыть разрешение.
  • Нажмите «ОК», чтобы закрыть окно «Свойства» и применить новые настройки
2
задан Abhishek Ekaanth 13 July 2018 в 09:56
поделиться

1 ответ

«Угловой способ» заключается в использовании привязки данных:

  1. Создайте структуру вашей формы в качестве модели
  2. Привяжите к вашей модели формы
  3. Обновить модель при отбрасывании

В вашем вопросе недостаточно информации для создания полного примера, но следующее должно показать концепцию:

Раздел

export interface Section {
  name: string;
  questions: Question[];
}

FormContainerComponent

export class FormContainerComponent {
  questionnaire: Section[] = [];
}

form-container.template.html

<form>
  <div *ngFor="let section of questionnaire" class="section">
    <div *ngFor="let question of section;">
      <input type="text">
    </div>
  </div>
</form>

Теперь просто слушайте капли и добавляйте элементы к своей анкете. Просмотр будет обновляться автоматически.

в FormContainerComponent add

@HostListener('drop', ['$event'])
handleContainerDrop(event) {
  // your logic to create "theDroppedSection"
  this.questionnaire.push(theDroppedSection);
}

Использование разных компонентов для элементов управления

Предполагая, что вы не хотите, чтобы всегда был один единственный html-вход элемент как элемент управления формой, вы можете создать один угловой компонент для каждого «типа управления» и создать что-то вроде FormControlContainer, который отвечает за загрузку нужного типа.

Остаться в примере вопросника: Создать на «QuestionComponent », который может загружать различные типы вопросов, например «YesNoQuestionComponent», «SingleTextInputQuestionComponent», ...

Это объясняется в https://angular.io/guide/dynamic-component-loader - просто замените их «AdBannerComponent» на «QuestionComponent» и посмотреть типы вопросов как «AdItem».

0
ответ дан Christoph Lütjen 17 August 2018 в 13:14
поделиться
  • 1
    Спасибо за ответ, изначально это так, как я начал, но теперь мне нужно работать по-другому. Я пытаюсь сделать что-то вроде этого formstack.com/admin/form/embedded_builder – Abhishek Ekaanth 13 July 2018 в 10:38
  • 2
    Это должно работать неплохо. Я делаю это с аналогичной структурой данных. В чем была проблема? – Christoph Lütjen 13 July 2018 в 10:43
  • 3
    поэтому, если я смогу перетащить эти элементы поля, то могу ли я изменить значение модели? – Abhishek Ekaanth 13 July 2018 в 10:53
  • 4
    – Christoph Lütjen 13 July 2018 в 11:02
Другие вопросы по тегам:

Похожие вопросы: