【问题标题】:Angular: how to route -parameters from same component?Angular:如何路由来自同一组件的参数?
【发布时间】:2018-10-17 00:26:22
【问题描述】:

问题:每当我点击一个链接时,它都会同时选择这两个链接。但它正确显示了各个链接。

当我点击链接时,它并没有刷新整个路线。

我的代码: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(){}

}

【问题讨论】:

  • 只是好奇,如果你改变路线的顺序,让path: 'gantt' 出现在gantt/:id 之前,它会改变什么吗?

标签: angular visual-studio asp.net-core


【解决方案1】:

您应该订阅 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;
        }
    });
}

【讨论】:

  • 不幸的是!!它不工作。我应该用这个替换内部代码吗? params.onIdChange = (id) => { this.nameFilter = id ? 'strategy.id=' + id : ''; this.getWorkItems();}
  • 它应该可以工作,你应该输入 subscribe() 代码来更新你的组件,如果你显示你的组件代码,我可以帮助你更多,尝试添加 subscribe() 初始化方法和属性初始赋值
  • 绝对!我不明白一件事。每次我点击长列表时,它只选择单独的行。但是每当我点击 tytufy .. 它会同时选择 .
  • 可能是smth.,你的模板有问题,请你也加一下
【解决方案2】:

尝试使用精确匹配选项设置有问题的链接 DOM 元素

[routerLinkActiveOptions]="{exact: true}"

可能的相关问题:

Why Angular2 routerLinkActive sets active class to multiple links?

【讨论】:

    猜你喜欢
    • 2017-01-13
    • 1970-01-01
    • 2019-07-06
    • 2016-12-19
    • 2016-09-21
    • 1970-01-01
    • 1970-01-01
    • 2017-11-07
    • 1970-01-01
    相关资源
    最近更新 更多