Size: a a a

2020 August 30

L

Leo in Angular Kyiv
Всем привет
Хочу перехватить данные, которые приходят с @Input в ангуляре
Кто знает решение?
Почему то сеттеры и ngOnChanges не помогли разобраться с проблемой, возможно, я что-то делал неправильно
источник

A

Alex in Angular Kyiv
Привіт, дайте більше опису проблеми. Навіщо перехоплювати?
источник

L

Leo in Angular Kyiv
Alex
Привіт, дайте більше опису проблеми. Навіщо перехоплювати?
Ну, мне надо костыль сделать вообщем-то
услонвно говоря, у меня примерно такая логика
@Input() set elem(data: any) {
 if (!someVariable) {
  someVariable = value
 }else{
 doSomethingElse()
 }
}
источник

L

Leo in Angular Kyiv
проблема в том, что у меня всегда someVariable андефайнд, соответсвенно, всегда срабатывает первый блок
источник

A

Alex in Angular Kyiv
А somevar де оголошена?
источник

L

Leo in Angular Kyiv
Alex
А somevar де оголошена?
в дочернем элементе( куда приходит данные с инпута )
источник

A

Alex in Angular Kyiv
Була така проблема після переходу з 8го на 9й ангуляр, поки вирішив за допомогою setTimeout
источник

L

Leo in Angular Kyiv
т.е так ?
@Input() set elem(data: any) {
 setTimeout( () => if (!someVariable) {
  someVariable = value
 }else{
   doSomethingElse()
 })
}
источник

A

Alex in Angular Kyiv
Так
источник

L

Leo in Angular Kyiv
Alex
Так
Мне всеравно не помогло,soveVar всеравно всегда undefined =(
источник

L

Leo in Angular Kyiv
Все, разобрался с проблемой
источник

L

Leo in Angular Kyiv
спасибо
источник

AY

Andrii Yushchenko in Angular Kyiv
По хорошему, сюда бы еще написать решение, интересно же)
источник

L

Leo in Angular Kyiv
Andrii Yushchenko
По хорошему, сюда бы еще написать решение, интересно же)
На самом деле, как всегда, ошибка была в другом месте )
источник
2020 August 31

D

Dmitriy in Angular Kyiv
Leo
Ну, мне надо костыль сделать вообщем-то
услонвно говоря, у меня примерно такая логика
@Input() set elem(data: any) {
 if (!someVariable) {
  someVariable = value
 }else{
 doSomethingElse()
 }
}
Скорее всего я чего-то не понимаю, но это какая-то не очевидная логика: лучше исправить её на уровне архитектуры. Через 1-2 месяца вообще в головцу не придёт что на settere какая-то сложная логика висит. Но это так мнение)
источник

L

Leo in Angular Kyiv
Dmitriy
Скорее всего я чего-то не понимаю, но это какая-то не очевидная логика: лучше исправить её на уровне архитектуры. Через 1-2 месяца вообще в головцу не придёт что на settere какая-то сложная логика висит. Но это так мнение)
ну, исправить что-то на уровне архитектуры не так просто, особенно когда проект, вцелом, движется к завершению
источник

D

Dmitriy in Angular Kyiv
Ок, если что можно эту же проблему решить при помощи:
 public ngOnChanges(changes: SimpleChanges): void {
   // to do: refactor in future:
   if (changes['elem']) {
     this.myMethod()
   }
источник

L

Leo in Angular Kyiv
Dmitriy
Ок, если что можно эту же проблему решить при помощи:
 public ngOnChanges(changes: SimpleChanges): void {
   // to do: refactor in future:
   if (changes['elem']) {
     this.myMethod()
   }
ну, как я уже написал, моя проблема в другом была, но спасибо
источник

AS

Alex S in Angular Kyiv
свершилоссс!
источник

AO

Alex Okrushko in Angular Kyiv
Leo
ну, исправить что-то на уровне архитектуры не так просто, особенно когда проект, вцелом, движется к завершению
Мне ради своего любопытства - а что значит "движется к завершению"? Закончили и отдали, и дальше поддерживать не надо? Или просто надо запустить (по бизнес требованию), а уже потом что-то менять?
источник