Size: a a a

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

2020 April 17

E

Eugene in Angular - русскоговорящее сообщество
Andrey Vaydich
всем привет

а кто как отписывается в 9 версии?

я раньше использовал ngx-componentdestroyed и они описали миграцию для 9... теперь там обязательно наследоваться

export class CellComponent extends OnDestroyMixin

но что делать если у меня уже было до этого наследование вот так

export class CellComponent extends GtCustomComponent<any>

если я делаю так

export class CellComponent extends OnDestroyMixin, GtCustomComponent<any>

то ошибка при сборке

Classes can only extend a single class

как быть кто знает?
@ngneat/until-destroy
источник

AS

Anton Shvets in Angular - русскоговорящее сообщество
Andrey Vaydich
всем привет

а кто как отписывается в 9 версии?

я раньше использовал ngx-componentdestroyed и они описали миграцию для 9... теперь там обязательно наследоваться

export class CellComponent extends OnDestroyMixin

но что делать если у меня уже было до этого наследование вот так

export class CellComponent extends GtCustomComponent<any>

если я делаю так

export class CellComponent extends OnDestroyMixin, GtCustomComponent<any>

то ошибка при сборке

Classes can only extend a single class

как быть кто знает?
декоратор использую https://www.npmjs.com/package/ngx-until-on-destroy
источник

AV

Andrey Vaydich in Angular - русскоговорящее сообщество
спасибо
источник

E

Eugene in Angular - русскоговорящее сообщество
Andrey Vaydich
всем привет

а кто как отписывается в 9 версии?

я раньше использовал ngx-componentdestroyed и они описали миграцию для 9... теперь там обязательно наследоваться

export class CellComponent extends OnDestroyMixin

но что делать если у меня уже было до этого наследование вот так

export class CellComponent extends GtCustomComponent<any>

если я делаю так

export class CellComponent extends OnDestroyMixin, GtCustomComponent<any>

то ошибка при сборке

Classes can only extend a single class

как быть кто знает?
в ts нет множественного наследования. в любом случае, автоотписка, требующая наследования - плохое решение
источник

AV

Andrey Vaydich in Angular - русскоговорящее сообщество
понял
источник

E

Eugene in Angular - русскоговорящее сообщество
а это решение не очень гибкое, т.к. требует навешивать декоратор на метод, возвращающий подписку
источник

E

Eugene in Angular - русскоговорящее сообщество
Eugene
@ngneat/until-destroy
вот это самое удобное, на мой взгляд
источник

AS

Anton Shvets in Angular - русскоговорящее сообщество
Eugene
вот это самое удобное, на мой взгляд
а меня через какое-то время начали раздражать эти пайпы везде.
метод норм. Одна подписка - один метод, и код лучше.
Лучше бы конечно декоратор на класс, но тогда надо определять какие методы возвращают подписку, а это сложна
источник

AV

Andrey Vaydich in Angular - русскоговорящее сообщество
Eugene
вот это самое удобное, на мой взгляд
@UntilDestroy({ checkProperties: true })
@Component({})
export class HomeComponent {
 // We'll dispose it on destroy
 subscription = fromEvent(document, 'mousemove').subscribe();
}

так можно автоматически отписываться без пайпа??
источник

E

Eugene in Angular - русскоговорящее сообщество
Andrey Vaydich
@UntilDestroy({ checkProperties: true })
@Component({})
export class HomeComponent {
 // We'll dispose it on destroy
 subscription = fromEvent(document, 'mousemove').subscribe();
}

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

AV

Andrey Vaydich in Angular - русскоговорящее сообщество
ок, спасибо
источник

E

Eugene in Angular - русскоговорящее сообщество
т.е., fromEvent(document, 'mousemove').subscribe(); вот так не отпишет, обязательно в свойство присвоить
источник

D

Dmitry in Angular - русскоговорящее сообщество
Добрый день! Как правильно отследить момент, когда post/put/delete запрос уже отправлен, а response еще не пришел? Например если в модели Company есть поле title, я его изменю и хочу заблокировать возможность редактировать объект в момент, когда запрос отправлен, но ответ от сервера еще не получен. Имеет ли смысл добавить в модель на фронте что-то вроде поля status, которое нужно обновлять во время отправления запроса и получения ответа? Спасибо!
источник

ВС

Виталий Смолин... in Angular - русскоговорящее сообщество
Dmitry
Добрый день! Как правильно отследить момент, когда post/put/delete запрос уже отправлен, а response еще не пришел? Например если в модели Company есть поле title, я его изменю и хочу заблокировать возможность редактировать объект в момент, когда запрос отправлен, но ответ от сервера еще не получен. Имеет ли смысл добавить в модель на фронте что-то вроде поля status, которое нужно обновлять во время отправления запроса и получения ответа? Спасибо!
В компоненте котором редактируешь компанию добавь перменную disable и при отправке запроса подставляй значение true, после получения ответа false
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Dmitry
Добрый день! Как правильно отследить момент, когда post/put/delete запрос уже отправлен, а response еще не пришел? Например если в модели Company есть поле title, я его изменю и хочу заблокировать возможность редактировать объект в момент, когда запрос отправлен, но ответ от сервера еще не получен. Имеет ли смысл добавить в модель на фронте что-то вроде поля status, которое нужно обновлять во время отправления запроса и получения ответа? Спасибо!
как вариант
1. сделать обсервабл с { ответом, статусом }
2. сделать от него один обсревабл со { статусом } и подписаться на него
3. сделать от него один обсервабл с { ответом } и подписаться на него
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
вариант похуже, через tap до запроса и после ответа
источник

D

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

K✔

Kenya-West ✔ in Angular - русскоговорящее сообщество
const currentDate = this.personForm.get("startHoliday").value as Date;
const targetDate = new Date(currentDate
 .setMonth(currentDate
   .getMonth() + this.personForm.get("endHoliday").value as number)
       );
this.holiday.endHoliday = targetDate;

Вопрос - какого лысого у this.personForm.get("startHoliday").value всё время увеличивается дата на значение, введенное в this.personForm.get("endHoliday").value? Я же ничего не присваиваю в контрол startHoliday
источник

MZ

Maxim Zvyagintsev in Angular - русскоговорящее сообщество
Здравствуйте.
Вопрос касательно тестов.
Никогда их не писал, и вот решил начать.
Суть тестов понимаю, но смущает множество инструментариев (Jest, Jasmine, etc..).
Подскажите материал (статьи, книги, скрин-касты), по теме тестов. И как вообще выбирать инструменты для тестирования фронтенда.
источник

Р

Роман in Angular - русскоговорящее сообщество
Anton Shvets
лучше сделай пример в песочнице
https://stackblitz.com/edit/ngonchanges-fkd89b почему на OnChanges не выводится в консоль ничего?
источник