ОБНОВЛЕНИЕ: весь код конфигурации маршрутизатора в этом ответе относится к маршрутизатору, который устарел и был удален примерно 6/2016
Я думаю, вам нужны дочерние маршруты - см. Plunker
Обновлен Plunker с перемещением навигации на Page1
где родительский маршрут позволяет переключаться между Page1
и Page2
, Page1
позволяет переключаться между About
и Contact
, а Page2
имеет только User
.
Page2
также может быть UserComponent
напрямую, только если эта страница должна поддерживать более одного компонента, необходимо сделать ее компонентом с дочерними маршрутами.
Конечно, вы можете перемещаться между User
и, например, About
с помощью
router.navigate(['/Page1', 'About']);
router.navigate(['/Page2', 'User']);
import {Component, Directive, Output, EventEmitter} from 'angular2/core'
import {ROUTER_DIRECTIVES, RouteConfig} from 'angular2/router';
@Component({
selector: 'contact',
directives: [],
template: `
<h2>contact</h2>
`
})
export class ContactComponent {
}
@Component({
selector: 'about',
directives: [],
template: `
<h2>about</h2>
`
})
export class AboutComponent {
}
@Component({
selector: 'user',
directives: [],
template: `
<h2>user</h2>
`
})
export class UserComponent {
}
@Component({
selector: 'page1',
directives: [ROUTER_DIRECTIVES],
template: `
<h2>page1</h2>
<router-outlet></router-outlet>
`
})
@RouteConfig([
{path: '/about', name : 'About' , component : AboutComponent, useAsDefault: true},
{path : '/contact', name : 'Contact' , component : ContactComponent}
])
export class Page1 {
}
@Component({
selector: 'page2',
directives: [ROUTER_DIRECTIVES],
template: `
<h2>page2</h2>
<router-outlet></router-outlet>
`
})
@RouteConfig([
{path: '/user', name : 'User' , component : UserComponent, useAsDefault: true},
])
export class Page2 {
}
@Component({
selector: 'my-app',
directives: [ROUTER_DIRECTIVES],
template: `
<h2>Hello {{name}}</h2>
<a href="#" [routerLink]="['/Page1','About']">About</a>
<a href="#" [routerLink]="['/Page1','Contact']">Contact</a>
<a href="#" [routerLink]="['/Page2','User']">User</a>
<router-outlet></router-outlet>
`
})
@RouteConfig([
{path: '/page1/...',name : 'Page1' , component : Page1 , useAsDefault: true },
{path: '/page2/...', name : 'Page2' , component : Page2 },
])
export class App {
constructor() {
this.name = 'Angular2';
}
}
person
Günter Zöchbauer
schedule
21.03.2016
window.location.href='www.goggle.com'
или<a href='www.google.com'></a>
, но да, функциональность, аналогичная внутреннему компоненту (внутри приложения Angular 2), - это то, что мне нужно. - person Pratik Kelwalkar   schedule 21.03.2016