Я использую CaseInsensitiveMatcher в качестве Alireza . Проблема в том, что при попытке выполнить сборку продукта я получаю следующую ошибку
"ссылки '' urlMatch '' CaseInsensitiveMatcher '' CaseInsensitiveMatcher 'содержит ошибку в src \ app \ provider \ caseInsensitiveMatcher .ts (4,10) Рассмотрите возможность изменения выражения функции в экспортированную функцию "
Пример кода из модуля маршрутизации приложений
export function urlMatch(str: string) {
return CaseInsensitiveMatcher(str).apply(this, arguments);
}
const routes: Routes = [
{ matcher: urlMatch('en-ie'), component: HomepageComponent },
{ matcher: urlMatch('en-gb'), component: HomepageComponent },
]
@NgModule({
imports: [RouterModule.forRoot(routes),SharedModule, AccountModule],
exports: [RouterModule, SharedModule, AccountModule]
})
export class AppRoutingModule { }
CaseInsensitveMatcher Code
import {Route, UrlSegment, UrlSegmentGroup} from '@angular/router';
export function CaseInsensitiveMatcher(url: string) {
return function(
segments: UrlSegment[],
segmentGroup: UrlSegmentGroup,
route: Route
) {
const matchSegments = url.split('/');
if (
matchSegments.length > segments.length ||
(matchSegments.length !== segments.length && route.pathMatch === 'full')
) {
return null;
}
const consumed: UrlSegment[] = [];
const posParams: {[name: string]: UrlSegment} = {};
for (let index = 0; index < matchSegments.length; ++index) {
const segment = segments[index].toString().toLowerCase();
const matchSegment = matchSegments[index];
if (matchSegment.startsWith(':')) {
posParams[matchSegment.slice(1)] = segments[index];
consumed.push(segments[index]);
} else if (segment.toLowerCase() === matchSegment.toLowerCase()) {
consumed.push(segments[index]);
} else {
return null;
}
}
return { consumed, posParams };
};
}
Буду очень признателен, если кто-нибудь скажет мне, что я делаю не так с этим? или даже как это решить. В любом случае, спасибо, что поблагодарили за время прочитать
Ссылка на оригинал для контекста