必须定义Angular2错误令牌

时间:2017-02-21 09:50:23

标签: angular

使用angular-cli时出现以下错误。

Error: Token must be defined!
    at new ReflectiveKey (http://localhost:4200/vendor.bundle.js:48893:19) [angular]
    at KeyRegistry.get (http://localhost:4200/vendor.bundle.js:48946:39) [angular]
    at Function.ReflectiveKey.get (http://localhost:4200/vendor.bundle.js:48911:35) [angular]
    at ReflectiveInjector_.get (http://localhost:4200/vendor.bundle.js:117530:102) [angular]
    at AppModuleInjector.NgModuleInjector.get (http://localhost:4200/vendor.bundle.js:66988:52) [angular]
    at RouterInitializer.appInitializer (http://localhost:4200/vendor.bundle.js:73780:48) [angular]
    at new ApplicationInitStatus (http://localhost:4200/vendor.bundle.js:46874:45) [angular]
    at AppModuleInjector.createInternal (/AppModule/module.ngfactory.js:424:36) [angular]
    at AppModuleInjector.NgModuleInjector.create (http://localhost:4200/vendor.bundle.js:66971:76) [angular]
    at NgModuleFactory.create (http://localhost:4200/vendor.bundle.js:66939:18) [angular]
    at http://localhost:4200/vendor.bundle.js:47309:61 [angular]
    at Object.onInvoke (http://localhost:4200/vendor.bundle.js:37314:37) [angular]

enter image description here

2 个答案:

答案 0 :(得分:0)

从工作项目执行新的NPM安装后,我收到了同样的错误。使用“^”检查Package.json文件中的依赖项,例如下面的zone.js。删除“^”以使npm安装指定的版本而不是以后的版本。

然后重新安装node_modules,它应该可以正常工作

"dependencies": {
"@angular/common": "2.4.2",
"@angular/compiler": "2.4.2",
"@angular/core": "2.4.2",
"@angular/forms": "2.4.2",
"@angular/http": "2.4.2",
"@angular/material": "2.0.0-beta.1",
"@angular/platform-browser": "2.4.2",
"@angular/platform-browser-dynamic": "2.4.2",
"@angular/router": "^3.4.2",
"@ngrx/core": "^1.1.0",
"@ngrx/effects": "^2.0.0",
"@ngrx/store": "^2.1.2",
"@ngrx/store-devtools": "^3.2.3",
"core-js": "^2.4.1",
"material-design-icons": "^3.0.1",
"reflect-metadata": "^0.1.3",
"reselect": "^2.5.4",
"rxjs": "5.0.1",
"systemjs": "0.19.27",
"zone.js": "^0.7.2"

答案 1 :(得分:0)

我遇到了同样的错误,花了一个小时才发现我在TestBed上意外使用了错误的变量

click

应该是:

let someService
...
someService= TestBed.get(someService);