我正在使用自定义管道来过滤属性列表,并希望将选定的过滤器添加到 url,以便我的客户可以共享过滤后的列表
如果我使用它,那么页面将被重新加载:
this.router.navigate([], { relativeTo: this.activatedRoute, queryParams: { county: countyId }, queryParamsHandling: 'merge' });
Run Code Online (Sandbox Code Playgroud)
我试图添加这个,但结果相同(但没有写入浏览器历史记录):
skipLocationChange: true
Run Code Online (Sandbox Code Playgroud)
所需的功能是,当使用管道时,我更新查询参数,没有任何问题,这甚至可能吗?
我不想重新加载页面的原因是我有其他不需要重新加载的东西:)
我在路由器 NavigationEnd 上使用订阅,如下所示:
this.router.events
.subscribe((event) => {
if (event instanceof NavigationEnd) {
this.getData();
}
});
Run Code Online (Sandbox Code Playgroud)
在同一路线中导航时,我需要它来更新页面数据,例如 /product1 和 /product2 使用相同的组件和路线,并在自定义路线服务中处理
这是为了当同一组件中的路由更新时获取数据,并且它按预期工作
问题是 this.getData() 在导航到另一个组件时也会运行,这会在我导航到的组件中产生很多问题,并且我还从服务器运行不必要的获取
所以问题是:当我离开组件时,我可以取消订阅路由器,这样 this.getData() 就不会运行吗?
我有一个奇怪的问题:)
我有一个看起来像这样的对象列表:
var list = new []
{
new { Id = 1, Name = "Marcus" },
new { Id = 2, Name = "Mattias" },
new { Id = 3, Name = "Patric" },
new { Id = 4, Name = "Theodor" },
};
Run Code Online (Sandbox Code Playgroud)
我想对提供“起始 ID”的列表进行排序
例如,如果我提供 "start id" 3,结果应该是这样的:
| ID | 姓名 |
|---|---|
| 3 | 帕特里克 |
| 4 | 西奥多 |
| 1 | 马库斯 |
| 2 | 马蒂亚斯 |
我不知道从哪里开始,所以我真的需要你们编码大神的帮助
该列表来自 sql 表,但对我来说排序发生的位置无关紧要(在 sql 查询中或在 c# 代码中)