我正在尝试将一个小型项目迁移到Angular 6和CLI6。它使用的是我更新的几个库,其中包括现已弃用的angular-2-cookie,因此我使用ngx-cookie进行了切换,即应该是它的继任者。而且它的路由使用@ uirouter / angular。
我的问题是:如果我在更新库并迁移cli之后ng serve
进行了应用,它将引发异常
未捕获的错误:无法解析StateService的所有参数:(?)。 在语法错误(compiler.js:1016) 在CompileMetadataResolver.push ../ node_modules/@angular/compiler/fesm5/compiler.js.CompileMetadataResolver._getDependenciesMetadata(compiler.js:10917) 在CompileMetadataResolver.push ../ node_modules/@angular/compiler/fesm5/compiler.js.CompileMetadataResolver._getTypeMetadata(compiler.js:10810) 在CompileMetadataResolver.push ../ node_modules/@angular/compiler/fesm5/compiler.js.CompileMetadataResolver._getInjectableTypeMetadata(compiler.js:11032) 在CompileMetadataResolver.push ../ node_modules/@angular/compiler/fesm5/compiler.js.CompileMetadataResolver.getProviderMetadata(compiler.js:11041) 在compile.js:10979 在Array.forEach() 在CompileMetadataResolver.push ../ node_modules/@angular/compiler/fesm5/compiler.js.CompileMetadataResolver._getProvidersMetadata(compiler.js:10939) 在CompileMetadataResolver.push ../ node_modules/@angular/compiler/fesm5/compiler.js.CompileMetadataResolver.getNonNormalizedDirectiveMetadata(compiler.js:10416) 在CompileMetadataResolver.push ../ node_modules/@angular/compiler/fesm5/compiler.js.CompileMetadataResolver._getEntryComponentMetadata(compiler.js:11013)
该StateService正在多个TS文件中使用,并通过
导入import {StateService} from '@uirouter/angular';
我猜想uirouter的更新版本中的构造函数签名已更改,但是我不知道该怎么办才能解决此问题,因为我找不到使用此构造函数的任何地方。在大多数TS_files中,它只是被导入并设置为提供程序,仅在一个地方被用作类属性:
[...]
export class CalculatorComponent implements OnInit {
$state: StateService;
[...]
有人知道我要解决这个问题吗?老实说,我对Angular很陌生,我对angularJS更加熟悉...