Angular 2在App启动时自动路由到主页。

问题描述 投票:0回答:3

我目前正在用Anuglar 2开发一个App,想让它在App启动时路由到我的主页。

我有一个main.html和一个main.ts文件,这两个文件是单独加载的,并且有各种嵌套的视图(如果这是正确的名称的话)可以加载进去,主页就是其中之一。

这时的代码看起来是这样的。

import {[...], Router} from 'angular2/router';

[...]

@Component({ 
  selector: 'main', 
  bindings: [Router] 
})
@View({
  directives: [[...] Router],
  templateUrl: '[...]/main.html'
})

export class mainApp {

 private router;

 constructor(router: Router)
  {
     router.navigateByUrl('/home');
  }         
}

bootstrap(mainApp, [[...}, Router]);

[...]表示一些其他的代码,这些代码对于问题本身来说应该是不重要的。

现在有了这些代码,启动App会抛出以下错误。

Cannot resolve all parameters for function Router(registry, parent, hostComponent) {(?, ?, ?). 确保它们都有有效的类型或注释。

如何解决这个问题,让routingauto-navigation工作?

迟来的编辑:在项目中和队友讨论了一些关于更新到angular 2 alpha 45的问题......结果发现这其实是问题背后的原因......整个事情现在用我开始使用的东西(和一些调整导入的东西)工作得很好。

routing angular bootstrapping angular2-routing
3个回答
1
投票

要自动重定向,你可以使用 redirectTo 像这样。

@RouteConfig([
    { path: '/', redirectTo: '/home' }
    { path: '/home', component: Home, as: 'Home' }
])

看看这个大块头。http:/plnkr.coeditj45sVHrLPNSEHFss0HUE?p=preview:


1
投票

你应该使用 useAsDefault: true 来设置您的默认路由,像这样。

@RouteConfig([
    { path: '/home', component: Home, as: 'Home', useAsDefault: true },
    { path: '/other', component: Other, as: 'Other }
])

在启动时,假设请求的路径为'',应用程序将启动你的主组件。


0
投票

用下面的代码创建separeta路由模块文件(例如app-routing.module.ts)。

import {NgModule} from '@angular/core';
import {RouterModule, Routes} from '@angular/router';

const routes: Routes = [
  {path: '', redirectTo: '/home', pathMatch: 'full'},
  {path: 'home', component: HomeComponent},
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule {}
© www.soinside.com 2019 - 2024. All rights reserved.