Попробуйте использовать код ниже: поэтому код будет отображаться только тогда, когда его фактически загруженный
<div v-if="tools">
This is Default child component
{{tools[0].name}}
</div>
Действительно странная вещь заключается в том, что если я делаю то же самое в компоненте, что и сервис, один возвращает идентификатор, а другой возвращает неопределенный.
blockquote>Если вы не передаете activeRoute в метод service, он не будет иметь доступа к этим данным. Служба (обычно) представляет собой одноэлементный объект, который находится за пределами области действия компонента и внедряется через систему DI.
Альтернативой было бы то, чтобы сервисный метод (или статическая функция) принимал активный маршрут в качестве параметра и работал с тем, что передает компонент. Вы можете передать его из компонента в ngOnInit.
//service or static method recordParams(activeRoute: ActivatedRoute) { activeRoute.params.subscribe(params=> console.log(params)); } //component constructor(private activeRoute: ActivatedRoute, private theService: TheService) {} ngOnInit() { this.theService.recordParams(this.activeRoute); }
Более альтернативно , у вас есть базовый тип компонента, который делает это в ngOnInit, и любой компонент, для которого вы хотите иметь эту функциональность, может расширять базу, вызывать родительский конструктор (передавая в активированный маршрут) и вызовите super.ngOnInit.
Если вы немного подробнее расскажете о своей конечной цели, я был бы рад дать более конкретный ответ!