我使用Angular2构建SPA。我想知道如何使用ES5重定向。如果我使用window.location
,那么它会重新加载整个页面。我只想要改变组件。
似乎我需要使用ng.router.Redirect
但是当我打电话时没有任何事情发生。
答案 0 :(得分:1)
为什么使用javascript如果angular提供导航方法本身,我不知道es5但是我在使用router.navigate(['routeName'])
的打字稿中做了。只需尝试使用路由,您只能更改组件而不是加载整个页面。
不要忘记在构造函数中实例化路由器,如下所示。
export class AppComponent implements OnInit {
constructor(private router: Router) {}
ngOnInit() {
this.router.navigate(['/yourRouteName']);
}
}
了解更多信息,请参阅此处https://angular.io/docs/ts/latest/guide/router.html
app.AppComponent = ng.core
.Component({
selector: 'the-app',
template: `
<h1>App!!!</h1>
<a [routerLink]="['Login']">Login</a>
<a [routerLink]="['ABC']">ABC</a>
<router-outlet></router-outlet>
`,
directives:[
ng.router.ROUTER_DIRECTIVES
]
})
.Class({
constructor: [ng.router.Route, function(_router) {
this._router = _router; // use for navigation, etc
this._router.navigate(['RouteName']) // For navigation ot another component
}]
});
app.AppComponent = ng.router
.RouteConfig([
{ path: '/', component:app.LoginCOmponent, name:'Login' },
{ path: '/children', component:app.xyz, name:'xyz' }
])(app.AppComponent);
我没有试过这个,但最有可能是这一次的工作。