- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试更新(添加、删除)组件中的 queryParams。在 angularJS 中,它曾经是可能的,这要归功于:
$location.search('f', 'filters[]'); // setter
$location.search()['filters[]']; // getter
我有一个应用程序,其中包含一个用户可以过滤、订购等的列表,我想在 url 的 queryParams 中设置所有激活的过滤器,这样他就可以复制/粘贴 url 或与其他人共享。
但是,我不希望每次选择过滤器时都重新加载我的页面。
这对新路由器可行吗?
最佳答案
您可以使用新的查询参数导航到当前路由,这不会重新加载您的页面,但会更新查询参数。
类似的东西(在组件中):
import {ActivatedRoute, Router} from '@angular/router';
constructor(
private router: Router,
private activatedRoute: ActivatedRoute,
) { }
public myMethodChangingQueryParams() {
const queryParams: Params = { myParam: 'myNewValue' };
this.router.navigate(
[],
{
relativeTo: activatedRoute,
queryParams: queryParams,
queryParamsHandling: 'merge', // remove to replace all query params by provided
});
}
请注意,虽然它不会重新加载页面,但它会将一个新条目推送到浏览器的历史记录中。如果您想在历史记录中替换它而不是在那里添加新值,您可以使用 { queryParams: queryParams, replaceUrl: true }
。
编辑:正如评论中已经指出的那样,[]
和 relativeTo
属性在我的原始示例中丢失了,因此它也可以更改路由,而不仅仅是查询参数。在这种情况下,正确的 this.router.navigate
用法是:
this.router.navigate(
[],
{
relativeTo: this.activatedRoute,
queryParams: { myParam: 'myNewValue' },
queryParamsHandling: 'merge'
});
将新参数值设置为 null
将从 URL 中删除该参数。
关于Angular:如何在不更改路由的情况下更新 queryParams,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43698032/
我使用 vuejs-axios 从客户端获取数据并将其发布到服务器端。在服务器端,我使用了 java,而我使用 SparkJAVA 框架来处理请求响应。下面提到的代码块是我用来将表单数据从 vuejs
您好,使用多路由构建 Angular 应用。 导航到页面 > queryParams 触发订阅。 当我在页面中时,我需要更改页面内的 queryParams 但不会再次触发订阅功能。 (因为我不想再次
我正在寻找在 Spring 中使用 @QueryParam 的简单示例。我的想法是有一个像这样的链接,它将获取 id 值,运行我的 java 类并显示返回的字符串。我的问题是没有找到返回值。 http
我有以下格式从浏览器发送的查询参数 sort[0][field]:prodId sort[0][dir]:asc 如何使用@QueryParam在服务器中检索上述参数? 从 Chrome 控制台 ta
我正在创建一个端点(使用 Jersey 注释),该端点接收字符串列表作为参数。字符串需要包含一个键和一个值。所以在 url 上它看起来像 ?params=key1=value1¶ms=key2
我正在尝试从 REST Web 服务的 URL 请求中获取请求参数。 @Path 能够映射方法。但 QueryParam 无法从查询参数中获取值。 我的请求网址是 192.168.20.147:808
我必须从客户端 java 类调用一个 Restful Web 服务。 我需要传递 HashMap、String,它必须返回一个 bean 列表。我正在使用 Jersey Restful 网络服务 我的
我正在使用 Jersey for Rest 并有一个接受 @QueryParam. 的方法 但是,用户可以像这样发送@QueryParam.: contractName# 其中 # 是 0-155 之
这是函数头 @GET @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) @Path("/getxyz") pub
我正在尝试更新(添加、删除)组件中的 queryParams。在 angularJS 中,它曾经是可能的,这要归功于: $location.search('f', 'filters[]'); // s
我有一个 Express 服务器,并且在我的路由中配置了: app.use(express.urlencoded({ extended: false })); 在前端,我使用 Angular 发送请求
给出以下代码: newtype HelloMessage = HelloMessage { msg :: String } deriving (Generic) instance ToJSON H
我有一个 RESTful 服务。这需要两个参数:开始日期和结束日期。 如果我使用 @RequestParam 注释,我就会得到我需要的东西。但如果我使用 @QueryParam,我注意到即使传递它,它
有没有办法在不使用 @QueryParam 注释显式声明其名称的情况下获取任何查询参数? 我有一个字符串,其中可能包含诸如 {animal} 之类的标记,然后将其替换为发布的查询参数,例如?anima
当我在 JAX-RS 中添加字符串的默认值时,它不会获取该值。它保持为 null 或空。 @QueryParam("status") private String status = "confirme
例如,我有课 class MyQuery { Date start; Date end; ChronoUnit scale; // ChronoUnit is enum } 我想声明
对于以下示例(使用 Jersey 2.6),百分比编码的查询参数未解码,相反,+ 被空格替换。 @Path("test") public class TestResource { @Path(
我目前正在尝试了解如何在 Angular 组件中收集 queryParameters。因为我只想在初始化期间收集它们一次,所以我首先尝试了快照模式: ngOnInit() { console.
我想在我的应用程序中提供一个基于来自 url 的 QueryParam 的常量。 localhost:4200?flag=true 在我添加的模块提供者中 { provide: FLAG, useFa
我正在尝试使用 Angular 2.0 捕获查询字符串参数,但遇到了困难。我有一个这样的网址 http://localhost:5000/?id_token=eyJ0eXAiO .... 而且我希望能
我是一名优秀的程序员,十分优秀!