【问题标题】:Angular not able to get full urlAngular 无法获取完整的网址
【发布时间】:2018-06-21 14:55:28
【问题描述】:

要求:需要点击url

localhost:4200/keyone=valueone&keytwo=value2109808329csdc0qwd&keythree=xyz@pqr.com

然后捕获:

[keyone=valueone, keytwo=value2109808329csdc0qwd, keythree=xyz@pqr.com];

当我使用 angular 5 访问 url 时,它会变为

localhost:4200/keyone

我没有得到完整的网址。它从= 中消失了。

【问题讨论】:

  • 试试localhost:4200/?keyone=valueone&keytwo
  • 复制粘贴到浏览器中。但是 y 它在 = 之后被丢弃。我听不懂。
  • @GeorgeBailey 试过了。不工作

标签: javascript angularjs angular url url-routing


【解决方案1】:

添加了路径并附加了所需的信息作为 id。 例如。

localhost:4200/item?keyone=valueone&keytwo=value2109808329csdc0qwd&keythree=xyz@pqr.com

并获得了 windows.location.url 中的 url 值

/item?keyone=valueone&keytwo=value2109808329csdc0qwd&keythree=xyz@pqr.com

【讨论】:

    【解决方案2】:

    url 看起来不错,您应该进入映射到此 irl 的 url 路由页面。我猜您提供的网址没有可用的路由,它会重定向到它找到的网址

    通常在 Angular 中,我们通过以下方式捕获 url 参数

    const routes: Routes = [{
      path: ':keyone/:keytwo/:keythree',
      component: SomeComponent,
      resolve: {
        resolvedData: SomeResolverService,
      }
    } 
    

    然后在您的解析器或组件中,您可以通过

    // inject ActivatedRouteSnapshot
    route: ActivatedRouteSnapshot
    

    然后获取参数

    route.params.keyone, route.params.keytwo, route.params.keythree, 
    

    【讨论】:

    • 路线对我有用,兄弟。不需要注入其他任何东西。
    猜你喜欢
    • 2018-05-16
    • 2018-04-19
    • 1970-01-01
    • 2014-08-23
    • 1970-01-01
    • 2017-11-28
    • 2010-12-13
    • 1970-01-01
    • 2018-09-13
    相关资源
    最近更新 更多