将值传递给路由
问题描述:
我有一个项目列表。当用户点击一个项目时,用户将被带到项目详细信息页面。将值传递给路由
我想将包含项目详细信息(如项目的图像URL)的对象传递给路由。但是,我不想在路由网址中公开它。
如果有办法做一些像<a route-href="route: details; settings.bind({url: item.url})">${item.name}</a>
这样的事情,那会是黄金。
我已经看到属性可以传递给路由(如果在路由配置中定义的话)。但是,我不知道如何从模板中改变它。另一种方法是定义一个单例并将值存储在那里,并将该对象注入目标路由。
有没有办法将值传递给路由从视图(如角ui路由器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
}
我想你应该得到这个“图像URL”的'视图模型 –
我还没有试过这种的activate'方法里面,但你看在这里? https://github.com/aurelia/documentation/blob/master/English/docs.md#generating-route-urls根据文档,它看起来像它可能会添加到该网址,但我不清楚它。他们有这样的内容:${user.name} – peinearydevelopment
看看文档的路由部分http://aurelia.io/docs.html#/aurelia/framework/1.0.0-beta.1.0.3/doc/article /作弊表 – conradj