Size: a a a

Angular - русскоговорящее сообщество

2021 February 23

VS

Vladimir Stempel 👁🍵... in Angular - русскоговорящее сообщество
там еще формгруп надо передать
<ng-container *ngFor="let attribute of form?.get('attributes').controls" [formGroup]="attribute">
 <input type="text" [formControl]="attribute.get('name')"/>
</ng-container>
источник

VS

Vladimir Stempel 👁🍵... in Angular - русскоговорящее сообщество
и я там чуть не правильно сделал,
замени
attributes: [this.fb.array(attributesGroups), []]

на
attributes: this.fb.array(attributesGroups)
источник

М

Максим in Angular - русскоговорящее сообщество
заменил

<ng-container *ngFor="let attribute attribute of form.get('attributes').controls">
 <input type="text" [formControl]="attributeattribute.get('name')" [id]="attributeattribute.attribute_id" [value]="attributeattribute.value"/>
 <label [for]="attributeattribute.attribute_id">{{attribute.nameattributeattribute.name}}</label>
</ng-container>


ругается на 1ю строку, на controls
источник

VS

Vladimir Stempel 👁🍵... in Angular - русскоговорящее сообщество
странно, должно работать
источник

М

Максим in Angular - русскоговорящее сообщество
this.form.get('attributes')['controls']
источник

AB

Alex Bu in Angular - русскоговорящее сообщество
Максим
заменил

<ng-container *ngFor="let attribute attribute of form.get('attributes').controls">
 <input type="text" [formControl]="attributeattribute.get('name')" [id]="attributeattribute.attribute_id" [value]="attributeattribute.value"/>
 <label [for]="attributeattribute.attribute_id">{{attribute.nameattributeattribute.name}}</label>
</ng-container>


ругается на 1ю строку, на controls
в инпут должно превязаться значение и без [value]. Через [formControl]="attribute.get('name')"
источник

М

Максим in Angular - русскоговорящее сообщество
а как достучаться до элемента объекта в атрибуте?
источник

AB

Alex Bu in Angular - русскоговорящее сообщество
Максим
а как достучаться до элемента объекта в атрибуте?
console.log(this.form.value), вероятно
источник

AB

Alex Bu in Angular - русскоговорящее сообщество
Alex Bu
console.log(this.form.value), вероятно
А там уже будет this.form.value.attributes как массив
источник

М

Максим in Angular - русскоговорящее сообщество
в html
источник

М

Максим in Angular - русскоговорящее сообщество
<ng-container *ngFor="let attribute attribute of form.get('attributes')['controls']; let i i = index">
 <input type="text" [formControl]="attributeattribute.get('name')" [id]="attribute.value.nameattributeattribute.value.name" [value]="attribute.value.nameattributeattribute.value.name"/>
 <label [for]="attribute.value.nameattributeattribute.value.name">{{attribute.value.nameattributeattribute.value.name}}</label>
</ng-container>

это пока самый полурабочий вариант. Почемуто лабел подставляется следующему инпуту, а не своему (
источник

М

Максим in Angular - русскоговорящее сообщество
А не, то стили )
источник

VS

Vladimir Stempel 👁🍵... in Angular - русскоговорящее сообщество
Максим
<ng-container *ngFor="let attribute attribute of form.get('attributes')['controls']; let i i = index">
 <input type="text" [formControl]="attributeattribute.get('name')" [id]="attribute.value.nameattributeattribute.value.name" [value]="attribute.value.nameattributeattribute.value.name"/>
 <label [for]="attribute.value.nameattributeattribute.value.name">{{attribute.value.nameattributeattribute.value.name}}</label>
</ng-container>

это пока самый полурабочий вариант. Почемуто лабел подставляется следующему инпуту, а не своему (
[value]="attribute.value.name" не надо передавать
источник

VS

Vladimir Stempel 👁🍵... in Angular - русскоговорящее сообщество
и лучше вместо ng-container'а div сделай
источник

VS

Vladimir Stempel 👁🍵... in Angular - русскоговорящее сообщество
и [formGroup]="attribute" передай, тогда сможешь использовать formControlName
источник

М

Максим in Angular - русскоговорящее сообщество
ERROR Error: Cannot find control with unspecified name attribute (
источник

М

Максим in Angular - русскоговорящее сообщество
плохо обащаюсь к элементам
источник

М

Максим in Angular - русскоговорящее сообщество
ERROR Error: Cannot find control with name: '0'
источник

М

Максим in Angular - русскоговорящее сообщество
<div [formGroup]="attributeattribute" *ngFor="let attribute attribute of form.get('attributes')['controls']; let ii=index">
 <div class="input-field">
   <input type="text" [formControl]="[ii]" formControlName="{{ii}}" [id]="['elem_'+attributeattribute.value.attribute_id]" [value]="attribute.value.nameattributeattribute.value.name"/>
   <label [for]="['elem_'+attributeattribute.value.attribute_id]">{{attribute.value.nameattributeattribute.value.name}}</label>
 </div>
</div>


блин, скоро отключусь, но хочется доделать. че так сложна то(
источник

VS

Vladimir Stempel 👁🍵... in Angular - русскоговорящее сообщество
Надо не индекс передавать, а имя, в твоём случае name
источник