Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 角形2罐';t解析abcService的所有参数_Angularjs_Angular_Dependency Injection - Fatal编程技术网

Angularjs 角形2罐';t解析abcService的所有参数

Angularjs 角形2罐';t解析abcService的所有参数,angularjs,angular,dependency-injection,Angularjs,Angular,Dependency Injection,尝试将配置对象注入服务时收到以下错误消息: Error: Can't resolve all parameters for abcService: (?, [object Object]). 我遵循了上的文档,但无法使其工作 在我的服务中abc.service.ts我有以下几点: import { IabcConfig } from 'abc.types'; export let ABC_CONFIG = new OpaqueToken('abc.config'); @Injectable(

尝试将配置对象注入服务时收到以下错误消息:

Error: Can't resolve all parameters for abcService: (?, [object Object]).
我遵循了上的文档,但无法使其工作

在我的服务中
abc.service.ts
我有以下几点:

import { IabcConfig } from 'abc.types';
export let ABC_CONFIG = new OpaqueToken('abc.config');

@Injectable()
export class abcService {
    private config: IabcConfig;    

    constructor(@Inject(ABC_CONFIG) config: IabcConfig, private http: Http) {
        this.config = config;
    }
}
在我的模块中
abc.module.ts

import { NgModule, ModuleWithProviders } from '@angular/core';
import { CommonModule } from '@angular/common';
import { IabcConfig } from '@abc/abc.types';
import { abcService, ABC_CONFIG } from '@abc/abc.service';

export const abcConfig: IabcConfig = {
    save: false,
    title: 'ABC',
}

@NgModule({ 
    imports: [
        CommonModule
    ]
})
export class ABCModule {
    static forRoot(): ModuleWithProviders {
        return {
            ngModule: SharedModule,
            providers: [
                o7AuthenticationService,
                { provide: ABC_CONFIG, useValue: abcConfig },
            ]
        };
    }
}
我正在使用的重要LIB:

angular@2.4.0
angular2-universal@2.1.0-rc.1
zone.js@0.7.4

ABCModule
中为Angular的
HttpModule
添加导入

....
@NgModule({ 
    imports: [
        CommonModule,
        HttpModule
    ]
})
...
更新:可能我误解了原始代码,但我仍然认为angular无法找到/解析您在
AbcService
的构造函数中使用的
HTTP
。除非您没有为此提供一段代码…

因此,当使用带有可注入对象的服务的自定义npm包时,至少在webpack.config.ts中,我们必须在
外部:includeClientPackages(/@angularclass |@angular |@abc)下添加自定义包
@abc


这修复了abc.service中的所有“无法解析参数”错误

如果您已导出abc_CONFIG并执行@Inject(AUTH_CONFIG),这是重命名错误还是代码中的真正错误?已更新,为了简单起见,删除了中间的代码,并将其重命名。因此,在得到建议后,我尝试使用其相对路径引用abc.service。令人惊讶的是,这是可行的,但显然不是正确的方式。顺便说一句,应该提到abs.service是它自己的npm包。所以相对路径是“node_modules/abc/abc.service”您是否使用systemjs?“无法解析abc服务的所有参数…”您是否尝试删除其他参数?您确定ABC_CONFIG是问题所在吗?在这种情况下,不会找到HttpModule,因为您可以看到注入的值是类型[object object],但配置对象是类型?这意味着它无法解决。