【发布时间】:2016-08-22 02:53:41
【问题描述】:
尝试在 Angular 2 中使用路由器时出现以下错误: Error: Uncaught (in promise): TypeError: Cannot read property 'resolve' of undefined 我不知道我的代码有什么问题。非常感谢任何帮助。
我有以下文件
main.ts
import {bootstrap} from 'angular2/platform/browser';
import {AppComponent} from './app.component';
bootstrap(AppComponent);
app.component.ts
import { Component } from 'angular2/core';
import { RouteConfig, ROUTER_DIRECTIVES, ROUTER_PROVIDERS } from'angular2/router';
import { LoginComponent } from './login.component';
import { NotesComponent } from './notes.component';
@Component({
selector: 'my-app',
template: `
<h1> {{ title }} </h1>
<nav>
<a [routerLink]="['Login']">Login</a>
<a [routerLink]="['Notes']">Notes</a>
</nav>
<router-outlet></router-outlet>
`,
directives: [ROUTER_DIRECTIVES],
providers: [ROUTER_PROVIDERS]
})
@RouteConfig([
{
path: '/login',
name: 'Login',
component: LoginComponent,
useAsDefault: true
},
{
path: '/notes',
name: 'Notes',
component: NotesComponent
}
])
export class AppComponent{
title = 'Angular 2 test';
}
login.component.ts
import { Component } from 'angular2/core';
import { Router } from 'angular2/router';
@Component({
selector: 'login',
template: `<h1>Login Test</h1>`
})
export class LoginComponent {
}
notes.component.ts
import { Component } from 'angular2/core';
import { Router } from 'angular2/router';
@Component({
selector: 'notes',
template: `<h1>Notes Test</h1>`
})
export class NotesComponent {
}
【问题讨论】:
-
什么浏览器?什么 Angular 版本?
-
谷歌浏览器中的版本 2.0.0-beta.15。
-
使用
HashLocationStrategy将ROUTER_PROVIDERS从AppComponent转换为bootstrap函数 -
你用的是缩小脚本吗,试试 unminified 还是 beta.16
-
@GünterZöchbauer 刚刚尝试了 beta.16,它可以工作,谢谢。但是,我不明白为什么这解决了这个问题,所以你能解释一下为什么吗?几天前我在关注在线教程,还没有 beta.16。