我升级了我的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错误,例如。
我不明白为什么 - 例如,404订阅组件非常简单:我甚至尝试添加“moduleId:'module.id',”但这没有区别:
{
"emitDecoratorMetadata": true,
"experimentalDecorators": true
}
答案 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)。