angular2 - ROUTER_PROVIDERS не определен
У меня есть этот код в моем 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(…)
Вот этот планкр
Как я могу это исправить?
2 ответа
Решение
У вашего плунжера есть несколько проблем.
В 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()">
Нажмите здесь для обновления вашего плунжера (включая *ngFor
изменения).
Добавьте строку ниже в index.ts
import { ROUTER_PROVIDERS, RouteConfig, ROUTER_DIRECTIVES } from '@angular/router-deprecated';
И добавить providers: [ROUTER_PROVIDERS]
в вашем файле app2.ts.