Проблема перезагрузки дочерних маршрутов с помощью Resolve in Angular - PullRequest
0 голосов
/ 22 февраля 2019

У меня проблемы с перезагрузкой функций childComponent.У меня есть компонент, который делает запрос к базе данных в зависимости от полученного параметра.Когда я получаю доступ к этому маршруту в первый раз, он хорошо выполняет функцию OnInit, но если я изменяю параметр :page, он ничего не делает.

Вот компонент:

//temas.children.component.ts
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute, Params } from '@angular/router';

@Component({
  selector: 'app-temas-children',
  templateUrl: './temas-children.component.html',
  styleUrls: ['./temas-children.component.css']
})
export class TemasChildrenComponent implements OnInit {


  constructor(private route: ActivatedRoute) { }

  ngOnInit() {
     console.log(this.route.snapshot.data.temas);

  }
}

Маршруты:

//app.routes.ts
//imports and some other routes
{ path: 'temas/:categoria', component: TemasComponent, children:[
{path: ':page', component: TemasChildrenComponent, runGuardsAndResolvers: "always", resolve:{temas: TemasResolverService}}
]},

Служба резольвера:

//temas.resolver.service.ts
import { Injectable } from '@angular/core';
import { CrudService } from './crud.service';
import { Resolve } from '@angular/router';
import { ActivatedRouteSnapshot } from '@angular/router';

@Injectable({
  providedIn: 'root'
})
export class TemasResolverService implements Resolve<any>{

constructor(private crudService: CrudService) { }
  resolve(route:ActivatedRouteSnapshot){
    return this.crudService.getTemas(route.parent.pathFromRoot[1].params.categoria, route.paramMap.get('page'));
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...