从Angular 5和CLI 1.5.4迁移到Angular 6和Cli 6

时间:2018-08-24 06:30:25

标签: angular angular-ui-router

我正在尝试将一个小型项目迁移到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更加熟悉...

0 个答案:

没有答案