gpt4 book ai didi

aurelia - 在 Aurelia 中重新加载当前页面

转载 作者:行者123 更新时间:2023-12-03 14:51:09 26 4
gpt4 key购买 nike

我有一个 Aurelia用户可以选择他们当前“工作”的公司的应用程序。应用程序中的每个页面都依赖于当前选择的公司,用户可以从下拉菜单中选择新公司。下拉菜单是位于导航栏上的组件。

我想要的是让该组件重新加载 change.delegate 上的当前页面处理程序而无需重新启动应用程序。所以设置window.location.href是不可能的。

有没有办法强制aurelia Router重新加载当前路线/页面?

另一种方法是使用 EventAggregator在整个应用程序中发出公司更改的信号,但这需要在每个页面上订阅该事件或让每个页面都从订阅该事件的基类继承,但这些是更多涉及的选项。

最佳答案

虽然没有官方支持,但有各种 hack 建议 in a relevant GitHub issue要求这个功能。

我要做的不涉及更新 aurelia 的源代码或向路由添加多余数据的工作是设置 activationStrategy 在我所有的路线上都是invokeLifecycle而不是默认值,如下所示:

import { activationStrategy } from 'aurelia-router';

export class App {

configureRouter(config, router) {
config.map([
{
route: ['', 'home'],
name: 'home',
moduleId: 'home/index',
activationStrategy: activationStrategy.invokeLifecycle
},
{
route: 'users',
name: 'users',
moduleId: 'users/index',
nav: true,
activationStrategy: activationStrategy.invokeLifecycle
},
... etc ...
]);
}

}

这使得路线的 activate()重新加载 View 模型时,方法将按预期运行。然后,在启动重新加载的代码中,我执行以下操作:

this.router.navigateToRoute(
this.router.currentInstruction.config.name,
this.router.currentInstruction.params,
{ replace: true }
);

关于aurelia - 在 Aurelia 中重新加载当前页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38845637/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com