我在 system.config.js 中有这个代码,当涉及到导入angular2的旧路由器(不推荐使用的路由器)时。
'@angular/router-deprecated': 'npmcdn:@angular/router-deprecated@'+angularVersion,
我收到了这个错误:
system.src.js:43 Uncaught (in promise) Error: ROUTER_PROVIDERS is not defined(…)
这是plunkr here
我该如何解决这个问题?
答案 0 :(得分:1)
你的掠夺者有几个问题。
app/index.ts
:添加导入:
import { ROUTER_PROVIDERS } from '@angular/router-deprecated';
import { HashLocationStrategy, LocationStrategy } from '@angular/common';
import { provide } from '@angular/core';
不是强制性的,但您应该删除.ts
扩展程序:
import { App } from './app2.ts';
应该是:
import { App } from './app2';
app/home.ts
添加templateUrl
的路径:
templateUrl: './home.html'
变为:
templateUrl: './app/home.html'
app/add_developer.ts
同时添加templateUrl
的路径:
templateUrl: './add_developer.html'
变为:
templateUrl: './app/add_developer.html'
*ngFor
表示法考虑将*ngFor
表示法更新为最新表示法。你在几个地方使用它。使用let
代替#
。例如,在app/home.html
:
<tr *ngFor="#dev of getDevelopers()">
应该是
<tr *ngFor="let dev of getDevelopers()">
Click here for your updated plunker(包括*ngFor
更改)。
答案 1 :(得分:0)
在 index.ts
中添加以下行import { ROUTER_PROVIDERS, RouteConfig, ROUTER_DIRECTIVES } from '@angular/router-deprecated';
在 app2.ts 文件中添加providers: [ROUTER_PROVIDERS]
。