169 похожих чатов

Парни, есть запара, пару часов голову ломаю уже Есть компонент A,

и компонент Б. Компонент Б чайлд компонента А
<----------------------------------------------------------------->
<componentA
(returnPaymentForm)="setFormA($event)">
</componentA>

<----------------------------------------------------------------->
В компаненте Б есть formGroup formA, в виде поля класса и есть
@Output()
returnFormA: EventEmitter<any>;
Когда я вызываю this.returnPaymentForm.emit(formA);

в компоненте А срабатывает метод
setFormA( localFormA:any ){}

в этой переменной localFormA есть поле , я меняю его значение
localFormA.priceValue ='someValue'
и отправляю форму на бекенд.

И трабл в том, что это значение также присваивается полю компонента Б formA.priceValue
Пробовал в методе setFormA( localFormA:any ){}
создавать локальную переменную по типу
let secondFormA = locaFormA;
и уже у secondFormA менять поле priceValue, но результат тот же самый, поле priceValue так же меняется и в компоненте Б у поля formA.priceValue.

Я так понимаю, это из-за сыллочного типа, т.к. когда я делаю
let secondFormA = locaFormA;
то secondFormA ссылается на тот же участок памяти, что и localFormA.

Надеюсь норм объяснил трабл, есть у кого идеи, как это можно обойти?

2 ответов

4 просмотра

Похоже на треш какой-то и костыли. Думаю можно это переписать нормально. Без EventEmitter<any> и let secondFormA = {...new NgForm(), ...locaFormA} Как минимум можно создание формы в сервис вынести. Либо объединить в одну форму. Непонятно в чем суть задачи. И почему в родительском и дочернем компоненте 2 одинаковые формы.

Лучше расскажи задачу. Т.к. в текущей постановке вижу только два варианта: 1. Полностью клонировать форму/значения 2. Хранить измененное значение в другом поле

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

Обсуждают сегодня

Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Hi guys, I'm looking for a good LLM course. Is there any course to learn LLMs in advanced? I'm aiming to use them in my apps, so a perfect course in my openion, is not only a ...
Taha
14
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
База данных не поможет. Шифрование не поможет. Какие там ещё варианты? Накидывайте.
КТ315
20
А табстоп это сообщение от окна или от элемента управления?
The Bird of Hermes
18
а чем лучше всего сделать глобальный лок, если много нодов, до сотни? ну то есть мне надо, чтобы некоторые операции с объектом не происходили одновременно. перемещение между н...
Д. П.
10
Всем привет. Подскажите, пожалуйста, как вы реализовываете следующий функционал. Допустим есть форма, в которой имеется выпадающий список со значениями. Значения хранятся в БД...
Евгений
7
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
31
Карта сайта