自Angular2 CLI升级以来无法解析xyz:(?,?)的所有参数

时间:2017-01-16 05:18:54

标签: angular typescript

我升级了我的Angular2项目,该项目从Beta .21升级到beta .25.5。我修复了所有错误,以便在使用AOT或非AOT(例如ng服务)时没有错误

我现在在浏览器加载时在运行时在我的许多服务上收到此错误,它会影响该文件的所有参数服务。

.txt

首先,我删除了我正在使用的桶并检查了循环依赖。

然后我将它们全部移动到App.module中的Providers数组中,并检查所有服务是否都有@Injectable()。 摆脱错误的唯一方法是使用Inject()方法,例如:

Can't resolve all parameters for *servicename*: (?)     

这解决了错误,但后来我在第三方库上遇到了这个错误。如何调试此问题以找出问题的根本原因?

由于

import { Injectable, Optional, SkipSelf, Inject } from '@angular/core'; import { Subject } from 'rxjs/Subject'; export interface SpinnerState { show: boolean; } @Injectable() export class SpinnerService { private spinnerSubject = new Subject<SpinnerState>(); spinnerState = this.spinnerSubject.asObservable(); constructor( @Optional() @SkipSelf() @Inject(SpinnerService) prior: SpinnerService) {

这就是我的App.Module的样子:

nativeError : Error: Can't resolve all parameters for Logger: (?). at SyntaxError.BaseError [as constructor] (http://localhost:4200/vendor.bundle.js:134335:27) [<r

我也有这些设置:

 providers: [
        {
            provide: AuthHttp,
            useFactory: authHttpServiceFactory,
            deps: [Http, RequestOptions],
        },
        [Logger],
        LoggerService,
        SpinnerService,
        DataBreezeService,
        ProfileService,
        AuthService,
        AuthGuardService,
        CanDeactivateGuardService,

(如上所述,我的项目在升级之前工作正常 - 我在发行说明中看不到任何明显的内容。)

更新 我一直在评论有问题的服务,并从构造函数中删除params,每次它只是转移到下一个服务 - 即。这里有更高层次的错误。现在我也在组件上得到404错误,例如。

enter image description here

我不明白为什么 - 例如,404订阅组件非常简单:我甚至尝试添加“moduleId:'module.id',”但这没有区别:

{
  "emitDecoratorMetadata": true,
  "experimentalDecorators": true
}

获取http://localhost:4200/subscribe.component.html 404(未找到)

1 个答案:

答案 0 :(得分:0)

通过删除所有桶进口并上升到beta 28.3来启动并运行

npm uninstall -g angular-cli
npm cache clean
npm install -g angular-cli@1.0.0-beta.28.3

并在项目文件夹中更新到本地28.3(更新angular-cli.json&amp; package.json)。