Angular: как направить -параметры из одного компонента? - PullRequest
0 голосов
/ 16 октября 2018

Проблема: всякий раз, когда я нажимаю на одну ссылку, она выбирает обе.Но он показывает отдельные ссылки правильно.

enter image description here

Я замечаю, что когда бы я ни нажимал на ссылку, он не обновлял весь маршрут.

Мой код: 1. Угловой маршрут:

{ path: 'gantt/:id', component: GanttWorkItemsComponent, data: { permission: 'Pages.WorkItems' }},
{ path: 'gantt', component: GanttWorkItemsComponent, data: { permission: 'Pages.WorkItems' } },

2.Компонент:

import { ActivatedRoute } from '@angular/router';

export class Gcomponent extens appComponent implements OnInit{

constructor(
    injector: Injector,
    private _http: Http,
    private _workItemsServiceProxy: WorkItemsServiceProxy,
    private params: ActivatedRoute) {

    super(injector);
    var paramId = params.snapshot.params["id"];

    if (paramId) {
        this.initiativeFilter = paramId;
        this.nameFilter = 'strategy.id=' + this.initiativeFilter;

    }
    } 

  ngOnit(){}

}

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Попробуйте настроить проблемные элементы DOM с точным соответствием

[routerLinkActiveOptions]="{exact: true}"

Возможная связанная проблема:

Почему Angular2 routerLinkActive устанавливает активный классна несколько ссылок?

0 голосов
/ 16 октября 2018

вы должны подписаться на this.params.params, чтобы ваш компонент обновлялся при каждом изменении параметров маршрута

constructor(
    injector: Injector,
    private _http: Http,
    private _workItemsServiceProxy: WorkItemsServiceProxy,
    private params: ActivatedRoute
) {
    super(injector);

    this.params.params.subscribe(() => {
        var paramId = params.snapshot.params["id"];
        if (paramId) {
            this.initiativeFilter = paramId;
            this.nameFilter = 'strategy.id=' + this.initiativeFilter;
        }
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...