加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

typescript – 如何从angular2的url查询参数?

发布时间:2020-12-17 08:44:49 所属栏目:安全 来源:网络整理
导读:我使用angular2.0.0-beta.7。当一个组件加载在路径“/ path?query = value1”时,它被重定向到“/ path”。为什么GET param被删除?如何保存参数? 我在路由器有一个错误。如果我有一条主路线 @RouteConfig([ { path: '/todos/...',name: 'TodoMain',compon
我使用angular2.0.0-beta.7。当一个组件加载在路径“/ path?query = value1”时,它被重定向到“/ path”。为什么GET param被删除?如何保存参数?

我在路由器有一个错误。如果我有一条主路线

@RouteConfig([
  {
      path: '/todos/...',name: 'TodoMain',component: TodoMainComponent
  }
])

和我的孩子路线喜欢

@RouteConfig([
  { path: '/',component: TodoListComponent,name: 'TodoList',useAsDefault:true },{ path: '/:id',component: TodoDetailComponent,name:'TodoDetail' }
])

我不能在TodoListComponent中得到参数。

我可以得到矩阵

params("/my/path;param1=value1;param2=value2")

但我想要经典

query params("/my/path?param1=value1&param2=value2")
Angular 2.0 FINAL解决方案。看来RouteParams已被弃用。试试这个:
import {Router,ActivatedRoute,Params} from '@angular/router';
import {OnInit,OnDestroy,Component} from '@angular/core';

@Component({...})
export class MyComponent implements OnInit,OnDestroy {

  constructor(private activatedRoute: ActivatedRoute) {}

  ngOnInit() {
    // subscribe to router event
    this.activatedRoute.params.subscribe((params: Params) => {
        let userId = params['userId'];
        console.log(userId);
      });
  }

}

如果要获取查询参数,请将this.activatedRoute.params替换为this.activatedRoute.queryParams

关于解除注册的注意事项

@Reto和@ codef0rmer已经正确地指出,根据官方文档,在这个实例中,组件onDestroy()方法中的unsubscribe()不是必需的。这已从我的代码示例中删除。 (请参阅我需要取消订阅吗?this教程的一节)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读