Angular Передача динамического состояния c в распознаватель после извлечения необходимых данных, а затем в компонент, но не может отобразить состояние в моем компоненте - PullRequest
0 голосов
/ 19 февраля 2020

Передача динамич. c состояние [состояние] = "{hello: 'world'}" для распознавателя после извлечения требуемых данных, затем для компонента, состояние отображается в преобразователе, но не может отображать состояние в мой компонент не определен, как я могу отобразить состояние в моем компоненте после передачи его в распознаватель

ниже моего кода для передачи динамического состояния c через маршрутизацию

<a [routerLink]="['/article', row.slug ]" [state]="{ hello: 'world' }" class="preview-link">
                    <span>{{row.slug }}</span>
</a>

это состояние отображается в моем преобразователе, но при попытке доступа к нему через мой компонент оно не определено

My Resolver

import { Injectable, } from '@angular/core';
import { ActivatedRouteSnapshot, Resolve, Router, RouterStateSnapshot, ActivatedRoute, 
NavigationStart } from '@angular/router';
import { Observable } from 'rxjs';

import { catchError } from 'rxjs/operators';
import { Article } from '../../entities';
import { UserService } from './../../../../shared/shared-services/core';
import { ArticlesService } from '../../services';


import { filter, map } from 'rxjs/operators';

@Injectable()
export class ArticleResolver implements Resolve<Article> {


constructor(
private articlesService: ArticlesService,
private router: Router,
private userService: UserService
) {}

resolve(
route: ActivatedRouteSnapshot,
state: RouterStateSnapshot
): Observable<any> { 

// state printed successfully here 
console.log(this.router.getCurrentNavigation().extras.state);

return this.articlesService.get(route.params['slug'])
  .pipe(catchError((err) => this.router.navigateByUrl('/')));
}
}

Мой компонент

constructor(
private route: ActivatedRoute,
private articlesService: ArticlesService,
private commentsService: CommentsService,
private router: Router,
private userService: UserService,
public deviceService: DeviceDetectorService
) { }

 ngOnInit() {
// Retreive the prefetched article
this.route.data.subscribe(
  (data: { article: Article }) => {
    this.article = data.article;

   // Here i trying to display state but it's print undefined 
    console.log(this.router.getCurrentNavigation().extras.state);

  }
);

1 Ответ

0 голосов
/ 19 февраля 2020

Используйте setter в MyComponent для свойства, которое вы хотите получить

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...