Size: a a a

2018 April 03

N

Nikolay in Angular Kyiv
Ребят, поделитель опытом.

Хочу создать переменную класса, как лучше это сделать ?

в Поле компонента:

serverParams = new UpgradeParams();

Или в ngOnInit() {
this.serverParams = new UpgradeParams();
}

если в он инит, то как лучше обьявить переменную через:
serverParams: UpgradeParams;

или просто

serverParams;
источник

S🥐

Sebastien 🥐 in Angular Kyiv
Nikolay
Ребят, поделитель опытом.

Хочу создать переменную класса, как лучше это сделать ?

в Поле компонента:

serverParams = new UpgradeParams();

Или в ngOnInit() {
this.serverParams = new UpgradeParams();
}

если в он инит, то как лучше обьявить переменную через:
serverParams: UpgradeParams;

или просто

serverParams;
ну если ты собираешь работать с пропертями переменной serverParams в constructor или ngOnInit, то первый вариант(в поле компонента)
источник

S🥐

Sebastien 🥐 in Angular Kyiv
но ты ничего не выиграешь, как по мне, объявив раньше или позже
источник

S🥐

Sebastien 🥐 in Angular Kyiv
но чтобы не стрельнуть в колено на будущие, то я бы заинитил сразу, указав её тип и создал экземпляр в неё
источник

S🥐

Sebastien 🥐 in Angular Kyiv
`если в он инит, то как лучше обьявить переменную через:
serverParams: UpgradeParams;`
вся суть строгой типизации, чтобы объявлять переменные указав их класс, потом лучше всегда указывать тип serverParams: UpgradeParams;
источник

N

Nikolay in Angular Kyiv
Sebastien 🥐
`если в он инит, то как лучше обьявить переменную через:
serverParams: UpgradeParams;`
вся суть строгой типизации, чтобы объявлять переменные указав их класс, потом лучше всегда указывать тип serverParams: UpgradeParams;
понял, спасибо 👍
источник

MS

Mike Silanin in Angular Kyiv
Подскажите плиз! Есть три сервиса: сервис авторизации, сервис 2 (запрашивает локализацию) и сервис 3 (запрашивает доп.данные). Сервис 2 и 3 должны слушать когда сервис авторизации получит данные и только тогда запрашивать свои. Вопрос как организовать архитектуру? Не инжектить же один в другой и подписываться на события? Или это нормально? Или описать это в корневом компоненте? Или как лучше?
источник

N

Nikolay in Angular Kyiv
Mike Silanin
Подскажите плиз! Есть три сервиса: сервис авторизации, сервис 2 (запрашивает локализацию) и сервис 3 (запрашивает доп.данные). Сервис 2 и 3 должны слушать когда сервис авторизации получит данные и только тогда запрашивать свои. Вопрос как организовать архитектуру? Не инжектить же один в другой и подписываться на события? Или это нормально? Или описать это в корневом компоненте? Или как лучше?
Я бы сделал через корневой компонент. И в нем вызывать все сервисы и по результатам дергать определенные методы 2-3 сервиса
источник

DO

Dez Oxel in Angular Kyiv
Компонент, инжектит три сервиса и строит rxjs цепочку:

this.myData = this.authService.authorize().pipe(
 mergeMap(authData => this.localizationService.get()),
 mergeMap(localizationData => this.someService.getData())
)


И потом подписываешься на myData во вьюшке с помощью AsyncPipe.
источник

MS

Mike Silanin in Angular Kyiv
Спасибо огромное!
источник

НШ

Никита Штейников in Angular Kyiv
переводил кто на webworker платформу  на вебпаке?
источник

MS

Mike Silanin in Angular Kyiv
Ещё есть вопрос по событиям. Какой подход запилить для сервисов? В доках нашел только ИвентЭмиттеры, но они для общения между компонентами и в вообще не очень нравятся. Запилил пока на уровне сервиса так:
источник

MS

Mike Silanin in Angular Kyiv
источник

MS

Mike Silanin in Angular Kyiv
Но не использовать же подобные конструкции в каждом сервисе? Можно сделать базовый и наследоваться от него или сделать отдельный сервис для бродкаста событий, но у меня есть подозрения что я делаю что-то не то )
источник

DO

Dez Oxel in Angular Kyiv
я приверженец ngrx, поэтому советую вместо своих велосипедов с эмитерами использовать redux-like подход)
источник

AK

Andrey Katrusha in Angular Kyiv
Серега спасибо за видосики посмотрю
источник

N

Nik in Angular Kyiv
Mike Silanin
Но не использовать же подобные конструкции в каждом сервисе? Можно сделать базовый и наследоваться от него или сделать отдельный сервис для бродкаста событий, но у меня есть подозрения что я делаю что-то не то )
Почему бы и не сервис? Кажется это именно то что вам надо
источник

СК

Сергей Кошман in Angular Kyiv
Если я правильно понял, то не нравится то, что он будет прям везде инжектится. Но это вопрос тогда к построению абстракций, если так много сервисов друг от друга зависит
источник

DK

Dm K in Angular Kyiv
так у ангуляра киллингфича как раз же депенденси инжекшн)
источник

AO

Agnislav Onufriichuk in Angular Kyiv
Гайз, пишет ли кто-то юниты на Jest? есть отзывы?
источник