【问题标题】:Angular cli 2 Error Can't resolve all parameters for XXXXX by AOT buildAngular cli 2 Error Can't resolve all parameters for XXXXX by AOT build
【发布时间】:2017-09-29 15:56:31
【问题描述】:
            import { Injectable, Inject } from '@angular/core';
            import { Subject } from "rxjs/Subject";
            import { CompleterData, CompleterItem } from 'ng2-completer';
            import { ProgramService } from '../program.service';
            import { asEnumerable } from 'linq-es5';
            import { CacheService } from '../../../core/services/cache.service';

            @Injectable()
            export class ProgramIntelligentSearch extends Subject<CompleterItem[]> implements CompleterData {
                constructor(private programService: ProgramService,
                    private cacheService: CacheService,
                    @Inject(Array) private lessonTypes: Array<any>,
                    @Inject(Array) private programTypes: Array<any>,
                    @Inject(Array) private languages: Array<any>
                    ) {
                    super();
                }
      --------------------------------------------------------------------------  
        import { Observable } from "rxjs/Observable";
        import { CompleterItem } from "../components/completer-item";
        export interface CompleterData extends Observable<CompleterItem[]> {
            search(term: string): void;
            cancel(): void;
            convertToItem?(data: any): CompleterItem;
        }
------------------------------------------------------------------
            Use ng build --prod --aot

错误无法解析 D:/Git/xxxxxxx/Application/Htm l5/src/app/shared/service/search/program-intelligent-search.ts: ([object Object], [object Object], ?, ?, ?)ProgramIntelligentSearch 的所有参数

./src/main.ts 中的错误 找不到模块:错误:无法解析 'D:\Git\cosmos-main-html5\App 中的 './$$_gendir/app/app.module.ngfactory' lication\Html5\src' @ ./src/main.ts 4:0-74 @multi ./src/main.ts

【问题讨论】:

  • 嗨,这个问题有很多原因。首先查看github.com/angular/angular-cli/issues/4551,然后检查您的依赖项。
  • @Inject(ProgramService) private programService: ProgramService, @Inject(CacheService) private cacheService: CacheService, 这对你有用吗?

标签: angular typescript


【解决方案1】:

您必须添加@Inject 以便解决它的依赖关系。

因此,对于服务中的自定义服务,使用 @Inject 注入其依赖项

在您的代码中,将您的自定义服务替换为

@Inject(ProgramService) private programService: ProgramService, @Inject(CacheService) private cacheService: CacheService,

您可以从这个博客中深入了解它。 https://blog.thoughtram.io/angular/2015/09/17/resolve-service-dependencies-in-angular-2.html

【讨论】:

  • 感谢您的回答。对于 ProgramService 和 CacheService 可以解决。但其他数组参数无法解析。
  • 为那些删除 @Inject(Array)。
  • @ParhGhiya,感谢您的支持,我已经解决了。由于 Angular.Link 不支持泛型类型参数github.com/rangle/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-30
  • 2020-10-27
  • 1970-01-01
  • 2018-02-23
相关资源
最近更新 更多