Size: a a a

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

2020 May 22

DT

Dmitry Teplov in Angular - русскоговорящее сообщество
Bretbas
короче я не знаю, блин.
У меня много маршрутов с id сегментом.
posts/:id
categories/:id
users/:id
users/banned/:id
users/:id/posts
и тд
и id не всегда является вторым сегментом. Но оно точно number. В случае если не number, мне нужно 404 получать.

Не
источник

B

Bretbas in Angular - русскоговорящее сообщество
1. У меня не все же маршруты на id только нацелены.
Это один из примеров я сказал. Будут и другие, где уже нужно проверять на некоторую регулярку, скажем, что в сегменте динамическом только буквы должны быть.

2. И что ты предлагаешь? Исходники выкачать и перекомпилить? 😃
источник

B

Bretbas in Angular - русскоговорящее сообщество
Я в Angular совсем зеленый на самом деле...
источник

DT

Dmitry Teplov in Angular - русскоговорящее сообщество
Bretbas
1. У меня не все же маршруты на id только нацелены.
Это один из примеров я сказал. Будут и другие, где уже нужно проверять на некоторую регулярку, скажем, что в сегменте динамическом только буквы должны быть.

2. И что ты предлагаешь? Исходники выкачать и перекомпилить? 😃
скопипастить функцию и переделать под свои нужды, использовать через match вместо path
источник

B

Bretbas in Angular - русскоговорящее сообщество
Dmitry Teplov
скопипастить функцию и переделать под свои нужды, использовать через match вместо path
это не решает проблему с статическими сегментами:
posts/:id
categories/:id
users/:id
users/banned/:id
users/:id/posts

users
, posts, categories
источник

DT

Dmitry Teplov in Angular - русскоговорящее сообщество
{ match: numberParameterMatcherFactory({ path: '/posts/:id', param: 'id' }), component: PostsComponent, resolve: { postId: numberResolverFactory('id') } }
источник

B

Bretbas in Angular - русскоговорящее сообщество
как они там будут, зашиты прям в функции чтоли?
источник

DT

Dmitry Teplov in Angular - русскоговорящее сообщество
Bretbas
как они там будут, зашиты прям в функции чтоли?
нет
источник

AS

Anton Shvets in Angular - русскоговорящее сообщество
Dmitry Teplov
{ match: numberParameterMatcherFactory({ path: '/posts/:id', param: 'id' }), component: PostsComponent, resolve: { postId: numberResolverFactory('id') } }
скобка угловая потерялась
источник

B

Bretbas in Angular - русскоговорящее сообщество
Dmitry Teplov
{ match: numberParameterMatcherFactory({ path: '/posts/:id', param: 'id' }), component: PostsComponent, resolve: { postId: numberResolverFactory('id') } }
что за объект ты передаешь в  numberParameterMatcherFactory ?
источник

DT

Dmitry Teplov in Angular - русскоговорящее сообщество
Bretbas
что за объект ты передаешь в  numberParameterMatcherFactory ?
конфиг для матчера
это уже на своё усмотрение, тебе нужно взять defaultMatcher и переделать под свои нужды
источник

DT

Dmitry Teplov in Angular - русскоговорящее сообщество
Dmitry Teplov
{ match: numberParameterMatcherFactory({ path: '/posts/:id', param: 'id' }), component: PostsComponent, resolve: { postId: numberResolverFactory('id') } }
могу показать, как я решаю проблему резолва числового параметра

вот именно так же
источник

B

Bretbas in Angular - русскоговорящее сообщество
блин, какой еще конфиг, если сигнатура матчера-функции совершенно другая:
источник

DT

Dmitry Teplov in Angular - русскоговорящее сообщество
Bretbas
блин, какой еще конфиг, если сигнатура матчера-функции совершенно другая:
type MyMatcherConfig = { path: string, param: string };
type NumberParameterMatcherFactory = (config: MyMatcherConfig) => UrlMatcher;
источник

AE

Argument Exception in Angular - русскоговорящее сообщество
Bretbas
блин, какой еще конфиг, если сигнатура матчера-функции совершенно другая:
я думаю он показывает пример фабрики матчера
источник

DT

Dmitry Teplov in Angular - русскоговорящее сообщество
Bretbas
блин, какой еще конфиг, если сигнатура матчера-функции совершенно другая:
не уверен на 100% что будет работать с вызовом функции в декораторе, правда
мб нужно как я сделал через провайдер
источник

DT

Dmitry Teplov in Angular - русскоговорящее сообщество
Argument Exception
я думаю он показывает пример фабрики матчера
да, я показываю, как не писать 100500 матчеров, а создавать их "на лету" под конкретные роуты
источник

B

Bretbas in Angular - русскоговорящее сообщество
Dmitry Teplov
type MyMatcherConfig = { path: string, param: string };
type NumberParameterMatcherFactory = (config: MyMatcherConfig) => UrlMatcher;
так. уже что-то проясняется.
Вы создали фабрику для матчера. Хорошо. Фабрика, я так понимаю регистрируется в IoC, там вы принимаете в конструкторе ActivatedRoute
источник

AS

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

B

Bretbas in Angular - русскоговорящее сообщество
Anton Shvets
зачем провайдеры, там же чисто на функциях должно быть
текущий роут надо же знать откуда то?
источник