当前位置: 首页 > 知识库问答 >
问题:

向Angular router.navigate添加参数

闾丘英悟
2023-03-14

首先,我不确定这是不是实现我想要的东西的正确方法..我正在尝试将如下所示的导出绑定添加到router . navigate()-方法:

<call [caller]="caller"></call>

问题是我从不使用该指令,而是通过路由器来处理:

acceptCall() {
   this.router.navigate(["call"]);
}

我如何实现相同的导出绑定从第一个例子中的接受呼叫()-方法?我已经添加了一个输入()变量,并尝试使用queryParams,如下所示:

@Input() caller: Caller;
acceptCall(caller) {
    this.router.navigate(["call"], {queryParams: caller});
}

但这并不起作用。

共有1个答案

丁豪
2023-03-14

根据我的评论,您必须:

1-重新定义您的路线

{path: 'call/:caller', component: MyComponent }

2 - 更改父组件中的导航

this.router.navigate(["call", caller]);

3-在子组件中,获取参数

import { ActivatedRoute } from '@angular/router';
// code until ...
myParam: string;
constructor(private route: ActivatedRoute) {}
// code until ...
ngOnInit() {
    this.route.params.subscribe((params: Params) => this.myParam = params['caller']);
}
 类似资料:
  • 问题内容: 是否可以在向其添加一些参数数据的同时将请求转发给另一个控制器?我尝试添加到ModelMap中,但是它似乎不存在问题。我正在做类似的事情: 我能想到的唯一其他方法是将参数放在会话上,然后将其弹出目标控制器。 问题答案: 最简单的方法是将数据添加到请求中。 由于这是转发,因此将相同的请求传递到服务器内的不同处理程序。 作为示例,让我们从两个控制器的简单设置开始,一个转发到另一个: 添加数据

  • 问题内容: 在使用AJAX调用的Web应用程序中,我需要提交一个请求,但要在URL的末尾添加一个参数, 寻找一种JavaScript函数,该函数解析URL并查看每个参数,然后添加新参数或更新值(如果已经存在)。 问题答案: 您需要调整的基本实现如下所示: 这大约是正则表达式或基于搜索的解决方案的两倍,但是这完全取决于查询字符串的长度和任何匹配项的索引 我为完成测试而基准的慢速正则表达式方法(慢了大

  • 我有一个基本的HTML网站,有几个谷歌地图在里面。每个子站点都有自己的地图。每个站点都有调用JS函数的代码: 这是JS函数:

  • 我想知道是否可以将spring的其他参数(如)添加到spring boot app中,以便将其作为服务运行。 我检查了由自动生成的脚本: 所以也许它可以通过maven插件的选项来完成,但是除了JVM参数之外找不到其他的,这不是那么有用...

  • 问题内容: 我有一种用于获取xml文件的数据获取方法。 我的问题是:如果文件名中存在ASCII范围之外的转义(十六进制表示法)或未转义utf-8字符,则jQuery会以某种方式向网址添加参数()。如果文件名中不包含该范围内的字符,则一切正常。 类型设置为,因此不应混淆类型。xml文件的标题也已适当设置。 我可以从控制台中看到jQuery引发错误,但是我不确定问题出在哪里。 可能是文件名格式出现问题

  • 我使用Spring Security with OAuth2进行身份验证/授权,使用以下项目。http://projects.spring.io/spring-security-oauth/ 我需要向OAuth2授权URL添加参数。我不确定应该如何将它添加到AuthorizationCodeResourceDetails bean中? 默认流只有以下参数/OAUTH/Authorize?Clien