0

我目前正在使用 Anuglar 2 开发一个应用程序,并试图在应用程序启动时将其路由到我的主页。

我有一个 main.html 和一个 main.ts 文件,它们可以自己加载,并且可以加载各种嵌套视图(如果这是正确的名称),home 就是其中之一。

此时的代码如下所示:

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]);

[...] 表示与问题本身无关的其他代码。

现在有了代码,启动应用程序会抛出以下错误:

无法解析函数 Router(registry, parent, hostComponent) {(?, ?, ?) 的所有参数。确保它们都具有有效的类型或注释。

如何修复它并让路由/自动导航正常工作?

后期编辑:与项目中的队友就更新到 angular 2 alpha 45 进行了一些会谈......结果证明这实际上是问题背后的原因。整个事情现在工作正常,我必须开始(以及对导入的内容进行一些调整)。

4

3 回答 3

1

要自动重定向,您可以redirectTo这样使用:

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

看看这个 plunk:http ://plnkr.co/edit/j45sVHrLPNSEHFss0HUE?p=preview

于 2015-11-09T09:43:00.660 回答
1

您应该使用useAsDefault: true来设置默认路由,如下所示:

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

启动时,假设请求的路径为“/”,应用程序将启动您的主组件。

于 2015-12-30T16:04:45.837 回答
0

使用下面的代码创建单独的路由模块文件(例如 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 {}
于 2020-05-16T13:08:23.050 回答