Как привязать сетку данных Angular 2 к Angular 4 FormArray

Я пытаюсь настроить динамическую форму Angular, которая может быть связана с некоторыми простыми редакторами, такими как текстовые редакторы, но также предоставляет список элементов, которые можно привязать к сетке. Примером может быть Заказ и его Предметы.

Насколько я понимаю, Angular Dynamic Forms создает модель отслеживания изменений, которая заполняется из «реального» объекта - в примере элементов заказа каждый элемент будет создан как FormGroup, а затем добавлен в FormArray.

Все это имеет смысл, и его легко запустить при привязке к простым элементам управления, но теперь мне нужно привязать элементы заказа к сетке данных. Это кажется очень распространенным сценарием, но я нигде не вижу упоминания об этом? Я подозреваю, что могу не следовать рекомендованным шаблонам?

Могу ли я привязать сетку данных (в данном случае Clarity VMWare) к элементам FormGroup?

Tx


person TRex    schedule 30.10.2017    source источник


Ответы (1)


Чтобы ответить на свой вопрос, я понял, что могу привязаться к каждой из групп форм, которые представляют элемент, получая значение абстрактных элементов управления в группе форм:

<clr-dg-row *ngFor="let item of orderItems" [clrDgItem]="item">
<clr-dg-cell>{{ item.get('code').value }}</clr-dg-cell>
<clr-dg-cell>{{ item.get('value').value }}</clr-dg-cell>
</clr-dg-row>

Если вам интересно, item.get ('controlName') получает элемент управления в группе управления, а .value получает его текущее значение. Список элементов представлен в компоненте следующим образом:

get orderItems(): AbstractControl[] {

    return (this.orderForm.get('items') as FormArray)
      .controls;
}
person TRex    schedule 30.10.2017
comment
Это просто будет отображать значение, верно? Разве вопрос не в редактировании элементов управления формы? Также обратите внимание, это не имеет ничего общего с ясностью. - person Juan Mendes; 31.10.2017