Я понимаю, что вы пытались сузить проблему до проблемы, которую легко воспроизвести, но, возможно, вы слишком много ее поняли.
Таким образом, из того, что вы можете прочитать из сообщений об ошибках компилятора, это не разрешено (выражения, передаваемые компилятору AOT, [propertyName] для объектов).
Я предлагаю вам полностью избежать этой проблемы, поскольку у вас могут быть разные файлы среды, просто определите данные следующим образом:
export const environment = {
production: true,
version: '1.0.0',
router: {
data: {
'resourceName': 'ORGANISATION', // <- replace 'resourceName' with whatever you need
}
}
}
А потом используйте вот так:
import { environment } from '@env/environment';
export const routes: Routes = [
{
path: '',
resolve: [TranslateResolver],
children: [
{
path: 'organisations',
component: OrganisationListComponent,
canActivate: [RouteGuard],
data: environment.router.data,
},...
Если ваша проблема требует чего-то другого, то снова избегайте выражений:
export const environment = {
production: false,
test: false,
router: {
data: {
resourceName: 'resourceName', // <- replace 'resourceName' with whatever you need
}
},
};
export const environment = {
production: true,
version: '1.0.0',
router: {
data: {
resourceName: environment.router.data.resourceName,
value: 'ORGANIZATION',
}
}
}
Это требует изменения способа использования этих данных, но эй, это работает.