如何通过navigation / navigateByUrl方法在Route的data属性中添加动态对象

时间:2019-10-17 10:23:13

标签: angular7 angular7-router

我的桌子有些行。每行都有编辑选项。当用户单击“编辑”时,用户导航到“编辑”页面。

我要实现的目标:当用户单击编辑选项时,我希望该行数据的ID和版本在我的“编辑”组件中可用。

问题在这里,我不想在URL中显示版本。显示ID对我来说很好。

URL应为-'/ edit /:id'

我开始了解角度的​​数据属性,该属性可以是静态的也可以是解析的。 我无法在此处使用解析器,因为在解析器中,我需要在“编辑”组件和“表”组件之间注入共享服务。而且这种方法对我来说并不干净。

最后,我能够按状态实现并通过

访问版本
window.location.history

在我的“编辑”组件中,并在“表”组件中更新以下代码

navigateToEdit(data: MyData): void {
    this.router.navigateByUrl('edit/data.id', { state: { version: data.version } });
}

但是仍然想知道是否有更好的方法。

navigateToEdit(data: MyData): void {
    this.router.navigateByUrl('edit/data.id');
    console.log(data.version); 
    // version is available here, is it possible to 
    //add this version in data property of Route from this function itself?
}

Table组件中提供了上述功能,我试图找到在现有代码中进行较少更改的最佳方法来实现此功能。

0 个答案:

没有答案