Size: a a a

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

2020 April 08

R

RondoK in Angular - русскоговорящее сообщество
Sergey
Ооо, а попробуй теперь добавить router-outlet ахах
Может сработает)
😁😘, так и я могу
источник

S

Sergey in Angular - русскоговорящее сообщество
RondoK
😁😘, так и я могу
🤣
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
Кто-нибудь думал о проблеме багов в router.navigate([‘path1’, ‘path2’]) и routerLink ([‘path1’, ‘path2’]) ? Ну, захотелось заказчику переименовать что-то в URL - и ищи-свищи, не поломалось ли у тебя что-то в рантайме.
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
сразу подумалось - вот дурачье, надо ж каждый path в routing module держать в виде переменной! Ну типа так:
export const KK_PATHS = {
 chFiches: 'ch-fiches',
 competenceSets: 'competence-sets',
 competenceElements: 'competence-elements',
 prerequisites: 'prerequisites',
 softskills: 'softskills',
 workEnvironments: 'work-environments'
};
const routes: Routes = [
 {
   path: KK_PATHS.chFiches,
   loadChildren: './ch-fiches/ch-fiches.module#ChFichesModule',
   data: {
     titleKey: 'portal.competence-catalog.ch-fiches.browser-title',
   }
 },
…]
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
но ведь такие переменные надо заводить на всех уровнях! И как только тебе понадобилось в шаблоне использовать routerLink - их надо вставлять как поля в компоненте! Плохо. Да и связь между разными уровнями в этом случае не ахти какая.
источник

YM

Yaroslav Morozov in Angular - русскоговорящее сообщество
Yuri Katkov
Кто-нибудь думал о проблеме багов в router.navigate([‘path1’, ‘path2’]) и routerLink ([‘path1’, ‘path2’]) ? Ну, захотелось заказчику переименовать что-то в URL - и ищи-свищи, не поломалось ли у тебя что-то в рантайме.
А каких именно багов?
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
ну, битые ссылки, navigate-вызовы, ведущие в никуда
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
просто оно ж вообще никак не типизировано и фактически является макроподстановками
источник

YM

Yaroslav Morozov in Angular - русскоговорящее сообщество
Yuri Katkov
ну, битые ссылки, navigate-вызовы, ведущие в никуда
Это не бага, это ответственность разработчика
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
да, я поэтому хочу ее переложить на систему типов или функцию-генератор
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
нехорошо когда у разработчика много ответственности
источник

YM

Yaroslav Morozov in Angular - русскоговорящее сообщество
Andrey Marchenko
В angular di есть что типа { provide: 'logger', useEnhance: (logger) => decorate(logger) }? кейс такой, что я хочу расширить поведение уже имеющегося логгера и мне нужна возможность, добавить декоратор для уже имеющегося токена
Да, можно сделать декоратор ручками и сказать Di системе чтобы она использовала декоратор вместо обычного логера
источник

YM

Yaroslav Morozov in Angular - русскоговорящее сообщество
Yuri Katkov
да, я поэтому хочу ее переложить на систему типов или функцию-генератор
А зачем, разве проблема в ide найти все слова и просто их поменять ручками, если преспичит?
источник

R

RondoK in Angular - русскоговорящее сообщество
Sergey
Ооо, а попробуй теперь добавить router-outlet ахах
Может сработает)
походу только так https://stackoverflow.com/a/42845342
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
Yaroslav Morozov
А зачем, разве проблема в ide найти все слова и просто их поменять ручками, если преспичит?
Вполне может быть проблемой, я в нескольких проектах видел как после перемещения или переименовывания в нескольких местах все шло по рулю
источник

YM

Yaroslav Morozov in Angular - русскоговорящее сообщество
Yuri Katkov
Вполне может быть проблемой, я в нескольких проектах видел как после перемещения или переименовывания в нескольких местах все шло по рулю
А есть кейс пример какой или описание возникшей проблемы?
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
надо вспомнить, кажется, частенько было проблемно если в routerLink параметры скармливались динамически
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
по-моему, проблема такая же как и использованием любых других magic numbers / magic strings: магические строчки очень плохо рефакторятся
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
вот думаю, может какой-то сервис замутить который будет строить корректные урлы?
источник

YM

Yaroslav Morozov in Angular - русскоговорящее сообщество
Yuri Katkov
по-моему, проблема такая же как и использованием любых других magic numbers / magic strings: магические строчки очень плохо рефакторятся
Да, но в случае с роутингом проще пойти на компромисс, маршрутов может быть много и делать переменную для каждого сегмента такое себе, в любом случае всегда есть qa и автотесты ну и маршруты не меняют каждый день, так что врядли стоит сильно заморачиваться
источник