Angular 2 RC1:从使用的初始URL获取参数

时间:2016-05-13 20:16:39

标签: angular

有些用户通过邀请进入我的网络应用。所以他们会有一个看起来像这样的链接:https://example.com/invitaion/12345其中12345是他们唯一的邀请号码。

当用户点击链接,并且我的AppComponent在框架的客户端初始化时,如何获得所使用的URL是“邀请/ *”这一事实以及如何获取邀请号?

2 个答案:

答案 0 :(得分:2)

AppComponent中的新路由器(> = RC.0 )中,这可以通过

完成
  import 'rxjs/add/operator/first';
  ....

  constructor(private router:Router, private routeSerializer:RouterUrlSerializer, private location:Location) {
    router.changes.first().subscribe(() => {

    let urlTree = this.routeSerializer.parse(location.path());
      console.log('id', urlTree.children(urlTree.children(urlTree.root)[0])[0].segment);
    });
  }

(获得第2段)

MyComponent中,这更容易:

routerOnActivate(curr:RouteSegment, prev?:RouteSegment, currTree?:RouteTree, prevTree?:RouteTree):void {
  this.id = curr.getParam('id');
}

答案 1 :(得分:0)

您希望使用RouteParams来访问该变量,并在您的Component中使用它。

// let's assume you labeled it as `path : '/invitation/:id'` in your @Route setup.

@Route([
    { path : '/invitation/:id', component : MyComponent }
]) 

现在在Component本身内:

import { RouteParams } from '@angular/router';

// Now simply get the ID when injecting RouteParams within your constructor

class MyComponent {
    id: string;
    constructor(_params: RouteParams) {
        this.id = _params.get('id');
    }
}