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.

Другие вопросы по тегам