Подтвердить что ты не робот

Местоположение и HashLocationStrategy перестали работать в бета-версии .16.

Сообщение об ошибке

VM556 angular2 -polyfills.js: 349Error: токен должен быть определен! (...)

или

ошибка TS2305: Module ' "/ node_modules/angular2/​​router" ' не имеет экспортированного участника 'LocationStrategy'.
ошибка TS2305: Module ' "/node_modules/angular2/​​router" ' не имеет экспортированного члена 'HashLocationStrategy'.
ошибка TS2305: Module ' "/node_modules/angular2/​​router" ' не имеет экспортированного элемента 'Местоположение'.

Как исправить

4b9b3361

Ответ 1

update >= rc.5

@NgModule({
  providers: [{ provide: LocationStrategy, useClass: HashLocationStrategy}]
})
export class AppModule {}

update >= rc.0

import {  
  PlatformLocation,  
  Location,  
  LocationStrategy,  
  HashLocationStrategy,  
  PathLocationStrategy,  
  APP_BASE_HREF}  
from '@angular/common';  

import {BrowserPlatformLocation} from   '@angular/platform-browser';

оригинальный

Измените

import {ROUTER_PROVIDERS, LocationStrategy, HashLocationStrategy} from 'angular2/router';

to

import {ROUTER_PROVIDERS} from 'angular2/router';
import {LocationStrategy, HashLocationStrategy} from 'angular2/platform/common';

См. также
- https://github.com/angular/angular/issues/8229

Полный список перемещенных экспонатов:
- https://github.com/angular/angular/pull/8230/files

import {  
  PlatformLocation,  
  Location,  
  LocationStrategy,  
  HashLocationStrategy,  
  PathLocationStrategy,  
  APP_BASE_HREF}  
from 'angular2/platform/common';  

import {BrowserPlatformLocation} from   'angular2/src/platform/browser/location/browser_platform_location';

Другая ошибка, которая обычно вызвана этим изменением, -

location.createComponent не является функцией