【发布时间】:2016-07-07 16:31:49
【问题描述】:
在我的路线配置中,我设置了一条带有子项的路线,如下所示:
{
path: 'users',
children: [
{ path: ':id', component: UserDetailsComponent },
{ path: '', component: UserListComponent }
]
}
现在,在我的 UserListComponent 中,我需要动态建立一个指向用户配置文件的链接,具有路径和 id 值....那么我将如何做到这一点,前提是我已成功注入路由器(私有路由器: 路由器)
所以我想做的是
const link = this.router.createUrl('/users', {id:item.id});
我会得到这样的东西
/users/xyse1334
【问题讨论】:
-
当前路由器没有
createUrl()方法。你用的是什么路由器版本?无论如何,您想将此 URL 用于什么用途,或者您想如何使用它? -
我知道它没有...我说了我想要的 ;) 我使用的是最新版本,我想使用与 router.navigate 方法相同的语法...所以:this.router.navigate(['/users', users.id]) 可能......但实际上并没有导航离开,而是喜欢获取生成的 URL,所以我可以将其粘贴到 href .....会在视图中执行此操作,但这是复杂/动态内容创建者的一部分......它有大量需要保留在组件中的业务逻辑
-
我不明白。为什么要将它粘贴到 href 中?这就是路由器已经为您做的事情。你可以做
'/users/${item.id}' -
所以,我正在从 json 数据构建一个表......并且列值可能有不同的修饰符(实际上取决于内容类型)......所以如果它是一个数字,它只会显示一个数字,如果它是一个链接,则必须创建一个 A 标记并根据设置添加 href attr ...它非常动态..我无法真正将此逻辑放入每一列的视图中
-
您可以使用
*ngIf来决定是添加数字还是添加<a routerLink="[...]">
标签: javascript angular router