В моем приложении Angular 7 есть несколько маршрутов, которые имеют свойство data
, используемое для различных целей - получено из activatedRoute.snapshot.data
. У меня проблема в том, что в разработке все работает как положено (JIT-компилятор), но как только я перехожу в производство с опережением времени, data
становится пустым объектом.
Минимум для воспроизведения: добавьте свойство data
к маршруту, например,
in app-routing.module.ts
:
...
const routes: Routes = [
{
path: 'foo',
component: fooComponent,
data: {
bar: 'bar'
}
}
];
...
затем console.log()
activatedRoute.snapshot.data
в компоненте, соответствующем маршруту, например
в foo.component.ts
:
...
import { ActivatedRoute } from '@angular/router';
...
constructor(
private activatedRoute: ActivatedRoute
) { }
ngOnInit() {
console.log(this.activatedRoute.snapshot.data);
}
С ng serve
(JIT) вы должны получить data
в консоли.
С ng serve --aot=true
(опережает время) data
- пустой объект в консоли.
Больше ничего я не мог бы попробовать, кроме отключения AoT в рабочей среде, что не идеально из-за преимуществ в производительности. Это похоже на проблему с самим AoT, но здесь мне интересно, сталкивался ли кто-то еще и решал ли ту же проблему раньше?