我有一个项目清单.当用户点击某个项目时,该用户将被带到项目详细信息页面.
我想将包含项目详细信息(如项目的图像URL)的对象传递给路径.但是,我不想在路由url中公开它.
如果有办法做这样的事情${item.name}
就是黄金.
我已经看到如果在路由配置中定义了属性,则可以将属性传递给路由.但是,我不知道如何从模板中更改它.另一种方法是定义单例并将值存储在那里并将对象注入目标路由.
有没有办法将值传递给视图中的路径(如angular ui-routers param
对象)?
好的,所以我找到了一种方法来实现更接近我想要的东西:
目标:将数据传递到路线而不将其暴露在位置栏中.
假设我们有一个用户列表,我们希望将其传递username
给用户的个人资料页面,而不将其定义为查询参数.
在视图模型中,首先注入Router
然后将数据添加到目标路由器:
goToUser(username) { let userprofile = this.router.routes.find(x => x.name === 'userprofile'); userprofile.name = username; this.router.navigateToRoute('userprofile'); }
现在当路由更改为时userprofile
,您可以访问路径设置作为activate
方法的第二个参数:
activate(params, routeData) { console.log(routeData.name); //user name }