Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
'/';字符未通过angular 2中的查询字符串_Angular_Angular2 Routing - Fatal编程技术网

'/';字符未通过angular 2中的查询字符串

'/';字符未通过angular 2中的查询字符串,angular,angular2-routing,Angular,Angular2 Routing,我正在处理Angular 2应用程序,因为我创建了一个路由,它通过查询字符串参数接受加密的电子邮件id。 例如,加密文本为NSDds3455rwlk/Dfd237hhSFSDFD= 然后,查询字符串只返回NSDds3455rwlk字符串,但我需要完全加密的字符串 应用程序组件中的路由配置 @RouteConfig([ {path: '/reset-password/:un', name: 'ResetPassword', component: ResetPasswordComponent} ]

我正在处理Angular 2应用程序,因为我创建了一个路由,它通过查询字符串参数接受加密的电子邮件id。 例如,加密文本为NSDds3455rwlk/Dfd237hhSFSDFD= 然后,查询字符串只返回NSDds3455rwlk字符串,但我需要完全加密的字符串

应用程序组件中的路由配置

@RouteConfig([
 {path: '/reset-password/:un', name: 'ResetPassword', component: ResetPasswordComponent}
])

在下面代码的帮助下修改您的代码

  /**
 * @Route("/{reset-password}/:un", name="ResetPassword", requirements={"ResetPasswordComponent"=".+"})
 */

将参数附加到地址栏时,需要对其进行URL编码。否则,您可能会得到意想不到的结果。在您的情况下,文本中的斜杠被解释为路由的一部分

Javascript具有用于编码和解码您可以使用的URI组件的内置函数
encodeURIComponent(“NSDds3455rwlk/Dfd237hhSFSDFD=”)
将返回
NSDds3455rwlk%2fdfdfdd237hhsfsdfd%3D
,该字符串可以安全地用作路由中的参数

另一方面,在
ResetPasswordComponent
code中,应该使用

var un = decodeURIComponent(this.params.get('un'));

因此,您将使用原始字符串作为参数。

您可以将路线代码粘贴到此处吗?您可以发布一些
ResetPasswordComponent
代码吗?如何从查询参数中获取数据?我通过以下代码从查询字符串中获取值:var un=this.params.get('un');params是RouteParams类型的变量,您是将加密文本粘贴到地址栏中,还是来自应用程序内部?这与Angular 2有何关系?此代码是否用于Angular 2?因为详细信息链接显示它用于Angular 1.x