Как получить элементы управления в подкомпонентах, распознаваемые в родительской форме? (угловой2 rc3)

Я только что обновил приложение, над которым работаю, до последней версии Angular 2 (rc3), Router & Forms (0.1.1). Сейчас я пытаюсь преобразовать формы в последнюю библиотеку и лучшие практики. Я использую документы Angular IO, чтобы попытаться завершить это.

Я могу заставить форму работать, если сделаю что-то вроде этого:

<form #form="ngForm">
  <input type="text" name="firstName" [(ngModel)]="model.firstName" required />
</form>

Но у меня есть моя форма, разделенная на несколько компонентов - на странице есть 4 раздела, поэтому у меня есть один компонент, представляющий каждый раздел, и каждый раздел имеет где-то между 5-10 входными полями различных типов.

Итак, мой код по существу:

<form #form="ngForm">
  <section-1 [(model)]="model"></section-1>
  <section-2 [(model)]="model"></section-2>

  <button type="submit">Submit</button>
</form>

Но форма не добавляет элементы управления из дочерних компонентов в список элементов управления формы. Каков наилучший способ сделать это? Я мог бы поместить форму в каждый подкомпонент, который отслеживает его собственное действительное состояние, и использовать родителя для управления 4 различными действительными состояниями «вручную», но кажется, что должен быть лучший способ.

Спасибо,

Дэн


person Dan Wnuk    schedule 23.06.2016    source источник
comment
Привет Дэн, ты разобрался?   -  person HankCa    schedule 28.02.2017


Ответы (1)


У вас может быть переменная модели в родительском для представления вашего дочернего компонента, который может иметь несколько полей, тогда дочерний компонент начнет действовать как элемент управления формы в родительской форме после того, как он правильно реализует интерфейс ControlValueAccessor, который сообщает Angular 2, как распространять значения между моделью и просмотр. Найдите третий пример в здесь

person bob    schedule 04.09.2016