Size: a a a

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

2019 October 12

IK

ILshat Khamitov in Angular - русскоговорящее сообщество
Ivan
Всем привет! Есть вопрос по angular universal - установил его по дефолту, сбилдил и запустил - все работает, но немного не так, как хотелось бы - есть компонент списка, который подгружает в ngOnInit список элементов через httpClient, для последующей отрисовки, вопрос в том - можно ли сделать так, чтобы пререндер подгрузил эти файлы, и срендерил список, после чего отдал бы его на клиент, а не срендерил пустой список, и на клиенте докачивал и дорисовывал? сами файлы лежат в папке assets как json
☝️
источник

I

Ivan in Angular - русскоговорящее сообщество
Спасибо! буду пробовать
источник

HW

Hello World in Angular - русскоговорящее сообщество
Привет всем не могу никак победить проблему

zone.js:192 Uncaught Error: Cannot find control with path: 'items -> 0 -> content'

<div class="row"
   
*ngFor="let item of itemsArray.controls; let i = index;">
 <div [formGroupName]="i" class="col-md-12">
   <div class="row mt-2
product-item-row">
     <input type="text" class="form-control col-md-3 mb-2 ml-1" formControlName="content"
            placeholder="Content"
            [(ngModel)]="source
Product.items[i].content"
            name="content">


Если создаю реактивные формы во врем инциализации объекта в класс, то есть editProductForm: FormGroup = this.createFormGroup()

Нет такой ошибки, а вот если в ngOnInit то вылает такое ((

Дело в том что если делать прям при инициализации объекта, то у меня недоступен сам объект (который передеатся в данном случае компоненту диалога) sourcePorduct

Подскажите как решить проблему
источник

AM

Anton Metlitsky in Angular - русскоговорящее сообщество
Hello World
Привет всем не могу никак победить проблему

zone.js:192 Uncaught Error: Cannot find control with path: 'items -> 0 -> content'

<div class="row"
   
*ngFor="let item of itemsArray.controls; let i = index;">
 <div [formGroupName]="i" class="col-md-12">
   <div class="row mt-2
product-item-row">
     <input type="text" class="form-control col-md-3 mb-2 ml-1" formControlName="content"
            placeholder="Content"
            [(ngModel)]="source
Product.items[i].content"
            name="content">


Если создаю реактивные формы во врем инциализации объекта в класс, то есть editProductForm: FormGroup = this.createFormGroup()

Нет такой ошибки, а вот если в ngOnInit то вылает такое ((

Дело в том что если делать прям при инициализации объекта, то у меня недоступен сам объект (который передеатся в данном случае компоненту диалога) sourcePorduct

Подскажите как решить проблему
можно рисовать форму только когда данные придут, можно в конструкторе создать пустую форму чтобы хоть какая то форма была, а позже заменит создав новую или setValue()
источник

A

A1eksey in Angular - русскоговорящее сообщество
A1eksey
Всем здрасте, есть вопрос, есть к примеру ModalService, который позволяет создать диалоговое окно из TemplateRef, далее я хочу в это диалоговое окно по нажанию на кнопку вставить ещё пару шаблонов ng-template, если я правильно понимаю мне нужно получить ссылку на ng-container внутри диалоговово окна пробовал через *ngTemplateOutlet за пределами диалоговово работает, внутри не работает, подразумеваю что как раз из за того что диалоговое окно создаётся через createEmbeddedView
вот что я делал, не уверен что это не говнокод, но оно работает https://stackblitz.com/edit/angular-rcfcw6?file=src%2Fapp%2Fapp.module.ts
источник

A

A1eksey in Angular - русскоговорящее сообщество
Hello World
Привет всем не могу никак победить проблему

zone.js:192 Uncaught Error: Cannot find control with path: 'items -> 0 -> content'

<div class="row"
   
*ngFor="let item of itemsArray.controls; let i = index;">
 <div [formGroupName]="i" class="col-md-12">
   <div class="row mt-2
product-item-row">
     <input type="text" class="form-control col-md-3 mb-2 ml-1" formControlName="content"
            placeholder="Content"
            [(ngModel)]="source
Product.items[i].content"
            name="content">


Если создаю реактивные формы во врем инциализации объекта в класс, то есть editProductForm: FormGroup = this.createFormGroup()

Нет такой ошибки, а вот если в ngOnInit то вылает такое ((

Дело в том что если делать прям при инициализации объекта, то у меня недоступен сам объект (который передеатся в данном случае компоненту диалога) sourcePorduct

Подскажите как решить проблему
Вечная проблема реактивных форм
источник

HW

Hello World in Angular - русскоговорящее сообщество
Anton Metlitsky
можно рисовать форму только когда данные придут, можно в конструкторе создать пустую форму чтобы хоть какая то форма была, а позже заменит создав новую или setValue()
так и делал все равно вылетает, только я не пойму почему если в дебаге выводит нормально типо есть все контролы, точнее как минимум items -> 0 -> content  есть точно
источник

HW

Hello World in Angular - русскоговорящее сообщество
A1eksey
Вечная проблема реактивных форм
а как решить, хотя бы костыль какой-то, а то уже мучаюсь со вчера
источник

A

A1eksey in Angular - русскоговорящее сообщество
Попробуй так, если я правильно понимаю у тебя formAray  в компаненте такой метод
источник

HW

Hello World in Angular - русскоговорящее сообщество
да вот так у меня
get itemsArray(): FormArray {
 return this.edit
ProductForm.get('items') as FormArray;
}
источник

A

A1eksey in Angular - русскоговорящее сообщество
в шаблоне примерно так
источник

HW

Hello World in Angular - русскоговорящее сообщество
A1eksey
в шаблоне примерно так
да, примерно так, а как попробовать?
источник

HW

Hello World in Angular - русскоговорящее сообщество
Hello World
Привет всем не могу никак победить проблему

zone.js:192 Uncaught Error: Cannot find control with path: 'items -> 0 -> content'

<div class="row"
   
*ngFor="let item of itemsArray.controls; let i = index;">
 <div [formGroupName]="i" class="col-md-12">
   <div class="row mt-2
product-item-row">
     <input type="text" class="form-control col-md-3 mb-2 ml-1" formControlName="content"
            placeholder="Content"
            [(ngModel)]="source
Product.items[i].content"
            name="content">


Если создаю реактивные формы во врем инциализации объекта в класс, то есть editProductForm: FormGroup = this.createFormGroup()

Нет такой ошибки, а вот если в ngOnInit то вылает такое ((

Дело в том что если делать прям при инициализации объекта, то у меня недоступен сам объект (который передеатся в данном случае компоненту диалога) sourcePorduct

Подскажите как решить проблему
в шаблоне вот так
источник

A

A1eksey in Angular - русскоговорящее сообщество
Ну ты же видишь что у тебя в шаблоне соершенно не так
источник

A

A1eksey in Angular - русскоговорящее сообщество
Покажи formBuilder
источник

HW

Hello World in Angular - русскоговорящее сообщество
A1eksey
Ну ты же видишь что у тебя в шаблоне соершенно не так
вы имеете ввиду в один тег переместить formArrayName?
источник

A

A1eksey in Angular - русскоговорящее сообщество
Я подразумеваю что должна быть група из formArray
источник

A

A1eksey in Angular - русскоговорящее сообщество
Как бы было хорошо если бы ты сделал всё через model а не через реактивные формы
источник

HW

Hello World in Angular - русскоговорящее сообщество
createProductItem(): FormGroup {
 return this.formBuilder.group({
   content: ['', [Validators.
required]],
   quantity: ['', [Validators.
required]],

 });
}


createFormGroup() {
   return this.formBuilder.group({
....
     items: this.formBuilder.array([this.createProductItems()]),
 
   });
 }



createProductItems() {
 const productItems = [];
 if (this.sourceProduct) {
   this.sourceProduct.items.forEach(value => {
     productItems.push(this.createProductItem());
   });
 }

 return productItems;
}
источник

A

A1eksey in Angular - русскоговорящее сообщество
Вот так в шаблоне сделай, только со своими тегами
источник