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 ответов

8 просмотров

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

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
18
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта