Location и HashLocationStrategy перестали работать в beta.16

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

VM556 angular2-polyfills.js:349 Ошибка: маркер должен быть определен!(…)

или же

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

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

1 ответ

Решение

обновление>= RC.5

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

обновление>= 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';

в

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 не является функцией

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