角度路由错误:应该只包含此文件一次

时间:2017-03-26 10:52:22

标签: javascript angular routing angular-routing

我正在玩tutorial Tour of Heroes found here。一切都运行,看起来很好。但是,在我从根页面添加路由到仪表板和英雄的详细信息后,我在控制台中收到以下错误:

Unexpected condition on http://localhost:3000/dashboard: should only include this file once

点击指向仪表板的链接后会看到错误。 该消息从该行代码抛出:

expect(!loadTimeData, 'should only include this file once');
VM1812:155 中的

。 JS版本是V8 5.6.326.50。我正在使用的Angular版本是4.0.0,如 package.json 中所声明的那样:

"dependencies": {
  "@angular/common": "~4.0.0",
  "@angular/compiler": "~4.0.0",
  "@angular/core": "~4.0.0",
  ...
}

dashboard.component.ts

import { Component, OnInit  } from '@angular/core';

import { Hero } from '../heroes/hero';
import { HeroService } from '../model/hero.service';

@Component ({
  selector: 'my-dashboard',
  templateUrl: './html/dashboard.component.html',
  styleUrls: ['./css/app.css'],
})

export class DashboardComponent implements OnInit {

  heroes: Hero[] = [];

  constructor(private heroService: HeroService) { }

  ngOnInit(): void {
    this.heroService.getHeroes()
      .then(heroes => this.heroes = heroes.slice(1, 5));
  }
}

/dashboard页面链接在 app.component 模板中,如下所示:

<nav>
  <a routerLink="/heroes">Heroes</a><!--another page, also problematic-->
  <a routerLink="/dashboard">Dashboard</a>
</nav>
<router-outlet></router-outlet>

和路由定义在类似的模块中定义:

@NgModule({
  imports: [ RouterModule.forRoot(
    [
      { path: '', redirectTo: '/dashboard', pathMatch: 'full' },
      { path: 'dashboard',  component: DashboardComponent },
    ]
  ) ],
  //...
})

任何人都知道这个错误意味着什么以及它弹出的原因?

1 个答案:

答案 0 :(得分:6)

我检查过每个浏览器,似乎只适用于Yandex浏览器。从我的角度来看,需要将该bug发送给Yandex支持团队。但是,它不会影响最终用户体验或任何功能。我们现在可以放心地忽略它。

PS - 角度应用程序不适用于旧的Safari(5.1.7),使用最新的(9-10),仅适用于MacOS或任何其他现代浏览器。