如何从Angular 2中的url获取查询参数?

我使用angular2.0.0-beta.7。将组件加载到/path?query=value1重定向到的路径上时/path。为什么要删除GET参数?如何保存参数?


我在路由器中有错误。如果我有像这样的主要路线


@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")


Smart猫小萌
浏览 915回答 3
3回答

忽然笑

通过注入一个实例,ActivatedRoute可以订阅各种可观察对象,包括a queryParams和paramsobservable:import {Router, ActivatedRoute, Params} from '@angular/router';import {OnInit, Component} from '@angular/core';@Component({...})export class MyComponent implements OnInit {  constructor(private activatedRoute: ActivatedRoute) {}  ngOnInit() {    // Note: Below 'queryParams' can be replaced with 'params' depending on your requirements    this.activatedRoute.queryParams.subscribe(params => {        const userId = params['userId'];        console.log(userId);      });  }}关于取消订阅的说明@Reto和@ codef0rmer非常正确地指出,根据官方文档,在这种情况下unsubscribe(),组件onDestroy()方法内部是不必要的。这已从我的代码示例中删除。(参见本教程中的蓝色警告框)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

AngularJS