Size: a a a

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

2020 June 02

Эи

Элан Джюс и его дере... in Angular - русскоговорящее сообщество
Элан Джюс и его деревянные солдаты
А есть ли возможность написать для сервиса кастомный декоратор так, чтобы в нем вызвать функцию после конструктора сервиса, и там получить доступ к зависимостям, которые в сервис инжектятся? И не поломает ли это DI
Пришел к такому:

export function WithDate<T extends {new(...args: any[]): {}}>(constructor: T) {
 return class extends constructor {
   constructor(...args: any[]) {
     super(...args);
     console.log(this);
   }
 };
}

Но теперь надо дать тайпскрипту понять, что в this доступны зависимости, которые инжектятся в сервис
источник

VF

Vadim Falin in Angular - русскоговорящее сообщество
Anton Shvets
наоборот нужно. в дочернем собирать форму. никуда ее не пробрасывать
А как я в дочернем буду собирать, если у меня скажем есть кнопка в родителе, которая эту форму шлёт и ещё 10 инпутов
источник

VF

Vadim Falin in Angular - русскоговорящее сообщество
Просто во Vue том же есть модификатор .sync для самого пропа, обеспечивающий возможность дочерней привязки

Нет ли чего подобного здесь?
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
Элан Джюс и его деревянные солдаты
Пришел к такому:

export function WithDate<T extends {new(...args: any[]): {}}>(constructor: T) {
 return class extends constructor {
   constructor(...args: any[]) {
     super(...args);
     console.log(this);
   }
 };
}

Но теперь надо дать тайпскрипту понять, что в this доступны зависимости, которые инжектятся в сервис
А зачем это вообще?
источник

AS

Anton Shvets in Angular - русскоговорящее сообщество
Vadim Falin
Просто во Vue том же есть модификатор .sync для самого пропа, обеспечивающий возможность дочерней привязки

Нет ли чего подобного здесь?
есть. ControlValueAccessor
т.е. делаешь из компонента продвинутый контрол формы, возвращающий что угодно
источник

RE

Ruslan Egorov in Angular - русскоговорящее сообщество
Alexander
Адаптивная верстка, флаги в глобальной области видимости, флаги же но проставляемые по юзерагенту, вообще разные проекты с общими компонентами
Спасибо. Буду разбираться
источник

Эи

Элан Джюс и его дере... in Angular - русскоговорящее сообщество
Oleg Safonov
А зачем это вообще?
источник

AS

Anton Shvets in Angular - русскоговорящее сообщество
ну и просто двусторонную привязку, как sync тоже можно сделать
источник

VF

Vadim Falin in Angular - русскоговорящее сообщество
Хорошо, большое спасибо!
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
А это зачем?)
источник

Эи

Элан Джюс и его дере... in Angular - русскоговорящее сообщество
Oleg Safonov
А это зачем?)
Хочется сделать реюзабельную логику для сервисов, которую потом подключать декоратором
источник

AS

Anton Shvets in Angular - русскоговорящее сообщество
Элан Джюс и его деревянные солдаты
Хочется сделать реюзабельную логику для сервисов, которую потом подключать декоратором
звучит как кейс к features, которых еще нет
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
Элан Джюс и его деревянные солдаты
Хочется сделать реюзабельную логику для сервисов, которую потом подключать декоратором
Это немного магией отдаёт) может быть не совсем очевидно, может другие варианты есть?
источник

Эи

Элан Джюс и его дере... in Angular - русскоговорящее сообщество
Oleg Safonov
Это немного магией отдаёт) может быть не совсем очевидно, может другие варианты есть?
Можно наследоваться конечно, но не хочется
источник

A

Andy in Angular - русскоговорящее сообщество
Всем привет. Может сможете подсказать. Создается экземпляр компонента, в котором отрисовывается модальное окошко с настройками, после необходимых манипуляций вызываем сохранение и окошко закрывается, так как данные хрантся в базе функция асинхронная и когда возвращаемся в основное окно настройки которые менялись в компоненте не отрисовываются сразу, а только при изменении фокуса. Подскажите как можно это починить, я не знаю как найти событие завершение дочернего компонента для того чтобы принудительно обновить родительский.
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
Элан Джюс и его деревянные солдаты
Можно наследоваться конечно, но не хочется
Ну типа сделать сервис с этой логикой и его инжектить. Я просто подобное делал для компонентов, только я там как раз наследовался (и через декоратор делал что то подобное, но показалось слишком неявно), но не особо зашло)
источник

AS

Anton Shvets in Angular - русскоговорящее сообщество
Oleg Safonov
Ну типа сделать сервис с этой логикой и его инжектить. Я просто подобное делал для компонентов, только я там как раз наследовался (и через декоратор делал что то подобное, но показалось слишком неявно), но не особо зашло)
декоратор не даст типизацию
источник

S

Sergey in Angular - русскоговорящее сообщество
Andy
Всем привет. Может сможете подсказать. Создается экземпляр компонента, в котором отрисовывается модальное окошко с настройками, после необходимых манипуляций вызываем сохранение и окошко закрывается, так как данные хрантся в базе функция асинхронная и когда возвращаемся в основное окно настройки которые менялись в компоненте не отрисовываются сразу, а только при изменении фокуса. Подскажите как можно это починить, я не знаю как найти событие завершение дочернего компонента для того чтобы принудительно обновить родительский.
Может вызывать changeDetection?
источник

Эи

Элан Джюс и его дере... in Angular - русскоговорящее сообщество
Anton Shvets
декоратор не даст типизацию
В этом и проблема, да
источник

A

Andy in Angular - русскоговорящее сообщество
Sergey
Может вызывать changeDetection?
можно, только вот где, в родительском происходит вызов компонента и на этом все. в дочернем changeDetection похоже отрабатывает только на модальное окно
источник