aurelia - 将值传递给路由

标签 aurelia

我有一个项目列表。当用户点击某个项目时,用户将被带到项目详细信息页面。

我想将包含项目详细信息(如项目的图像 URL)的对象传递给路由。但是,我不想在路由网址中公开它。

如果有办法做类似 <a route-href="route: details; settings.bind({url: item.url})">${item.name}</a> 的事情那将是黄金。

我发现如果在路由配置中定义了属性,则可以将属性传递给路由。但是,我不知道如何从模板中更改它。另一种方法可能是定义一个单例并将值存储在那里并将对象注入(inject)到目标路由。

有没有办法将值传递给 View 中的路由(例如 Angular ui-routers param 对象)?

最佳答案

好吧,我找到了一种方法来实现更接近我想要的东西:

目标:将数据传递到路线,而不在地址栏中暴露它们。

假设我们有一个用户列表,我们希望将用户名传递到用户的个人资料页面,而不将其定义为查询参数。

在 View 模型中,首先注入(inject)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
}

关于aurelia - 将值传递给路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34273569/

相关文章:

javascript - 修改函数表达式中的类变量

aurelia - 如何提供一个 aurelia 库供基于 aurelia CLI 的应用程序使用

dependency-injection - Aurelia Singleton 查看模型

javascript - aurelia 中使用 repeat.for 绑定(bind)自定义元素的正确方法是什么

javascript - Aurelia - repeat.for 按值转换器排序在 IE 11 中失败

javascript - Aurelia 要求 html 导入不起作用

javascript - 即使代码在 Aurelia 中是正确的,Service Worker 也在工作

aurelia - 引用 Aurelia 组件的 ViewModel 内的槽

typescript - 我做错了 Promise...我在这里错过了什么?

redux - Aurelia 状态管理