angular2 RC1 CLI

时间:2016-06-25 06:31:31

标签: angular routing

我正在使用RC.1在angular2 CLI中进行路由,但似乎在发布之后路由有很多变化 angular2 RC,在angular2 beta之前,一切正常,

  1. 如果我在routerLink中使用../使用路由器将查看当前组件的父角度抛出错误
      

    Invalid number of '../'

  2. 如何在RC中使用子路由?

    1. 路由不工作按钮单击
    2. Routerparams无法在angular2 RC.1
    3. 中使用

      任何想法?

2 个答案:

答案 0 :(得分:2)

搜索后解决它可能会帮助其他人,发布作为答案 -

  

错误解决方案Invalid number of '../'

您需要导入RouteSegment并将其添加到构造函数

import { Router, RouteSegment } from '@angular/router';
...
contructor(private $_router:Router, private $_segment:RouteSegment){}
...

//If you are in for example child1 and child 1 is sibling of child2
this.$_router.navigate(['../child2'],this.$_segment);

Credit goes to this answer

  

angular2 RC中的子路由

在angular2 beta中没有任何/...类似指定子路线,您只需声明路由就不需要使用此/...

  

Routerparams在angular2 RC.1中不起作用

现在RouteParams已更改为RouteSegment,因此您必须将RouteSegment插入构造函数中并获取此类参数 -

constructor(params: RouteSegment) {
        let id = params.getParam("params_name");
    }

答案 1 :(得分:1)

回答RouteParams:

你必须为路线添加参数:

@Routes([  
  {path: '/my-component/:id', component: MyComponent}
])

在RouterLink中使用参数,逗号不是对象:

[routerLink]="['/my-component',id]"

并访问组件中参数的值:

constructor(curr: RouteSegment) {
        let itemID = curr.getParam("page_id");
    }