2016-05-16 1 views
0

У меня есть родительский компонент с URL/приложение , когда я вхожу войти в этот компонент, по умолчанию следующий компонент загружается со следующими маршрутами:Angular2 rc1 маршрутизатор навигации по URL

@Routes([ 
    { path: '/users', component: UserComponent }, 
    { path: '/other', component: OtherComponent } 
]) 

и я реализующего OnInit интерфейс:

ngOnInit() { 
    this.router.navigate(['users'], this.currSegment); 
} 

Поскольку родительский маршрут/приложение и ребенок реализует ngOnInit я могу перейти к пользователям, но если я хочу напрямую перемещаться по URL маршрута/другому невозможно.

+0

, какой маршрутизатор вы используете, '' router' или маршрутизатор-deprecated' –

+0

извините, я забыл упомянуть. это 'router' –

ответ

0

В angular2 rc1 нет параметра имени для маршрутов больше, теперь вы должны использовать следующий код, чтобы перейти на другую страницу

this._router.navigate(['/users']);

+0

Как я могу перейти на такой маршрут, как/users /: id, с помощью команды навигации? – hmrc87

1

Вы должны объявлять @Route Params:

@Route([ 
    { path: '/users/:id', component: UsersComponent } 
]) 
export class MyComponent implements OnInit { 
    constructor(private router: Router) {} 
    ngOnInit() { 
    // assuming this.userId comes from somewhere 
    this.router.navigate(['/users/', this.userId]); 
    } 
} 

Если вам необходимо получить доступ к Params, вы можете использовать RouteSegment в конструкторе:

constructor(private segment: RouteSegment) { 
    this.userId = segment.getParam('id'); 
} 
3

Есть два способа Availabel для одной и той же

  • router.navigate(['.....'])
  • router.navigateByUrl('.....')

если ваш будет использовать первый, чем вы можете использовать, как это

this.router.navigate(['/users']); 

который принимает массив с именем маршрута

и во втором случае вы должны передать строку в качестве параметра, как этого

this.router.navigateByUrl('/app/users'); 

проходящего параметр

, если вы хотите, чтобы отправить параметры маршрутизации наряду с маршрутизацией, чем вы можете использовать, как это

this.router.navigateByUrl ('/ app/users /' + id);

где id ваши данные/ключ любой

смотри также