Location 和 HashLocationStrategy 在 beta.16 中停止工作

Posted

技术标签:

【中文标题】Location 和 HashLocationStrategy 在 beta.16 中停止工作【英文标题】:Location and HashLocationStrategy stopped working in beta.16 【发布时间】:2016-08-20 02:05:11 【问题描述】:

错误信息

VM556 angular2-polyfills.js:349Error: 必须定义令牌!(...)

错误 TS2305:模块 '"/node_modules/angular2/router"' 没有导出的成员 'LocationStrategy'。 错误 TS2305:模块 '"/node_modules/angular2/router"' 没有导出的成员 'HashLocationStrategy'。 错误 TS2305:模块 '"/node_modules/angular2/router"' 没有导出的成员 'Location'。

如何解决

【问题讨论】:

【参考方案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 不是函数

【讨论】:

基本上LocationStrategyHashLocationStrategy 已移至angular2/platform/common 模块,您能否在答案中添加此内容,以便提供更多信息:) 对于那些说这是旧的人请点击下面的链接blog.ng-book.com/basic-routing-in-angular-2

以上是关于Location 和 HashLocationStrategy 在 beta.16 中停止工作的主要内容,如果未能解决你的问题,请参考以下文章

window.location.href=window.location.href 和 window.location.reload() 的区别

window.location.hash 和 location.hash 有啥区别? [复制]

window.location= 和 window.location.replace() 有啥区别?

document.location和window.location有啥区别

nginx location匹配规则一般匹配和精准匹配

js实现页面跳转,location.href和location.replace和location.reload的区别