angular2在构造函数中使用参数扩展服务

毛特罗克

我在理解如何正确地在angular2中扩展服务时遇到了一些问题,可能是因为我不太了解如何在打字稿中扩展类。

超类

@Injectable()
export class CallService{
    constructor(private errror:string){
        this.errMsg=errror;
    }
    private _errMsg:string;
    set errMsg(arg0:string){
        this._errMsg=arg0;
    }
    get errMsg():string{
        return this._errMsg;
    }
}

子类

@Injectable()
export class DownloadService extends CallService{
    constructor(private error:string,private http:Http){
        super(error)
    }
}

应用组件

@Component({
selector:'my-app',
    templateUrl:'app/app.component.html',
    styleUrls:['app/app.component.css'],
    directives:[ROUTER_DIRECTIVES,WaitComponent],
    providers:[DownloadService,SwitcherService,CallService,WaitService]
})
export class AppComponent{
    title:'App'
    constructor(
        private areadownloadservice:AreaDownloadService,
        private waitService:WaitService,
        private switcherservice:SwitcherService,
        private callService:CallService){}
    )
}

我想做的是使用CallService扩展某些类,以便所有进行调用的类都将具有errMsg字符串属性来设置或获取,但是我得到了这个异常:

没有String的提供者!

我错过了什么?

贡特·佐赫鲍尔(GünterZöchbauer)

你可以

  • 删除error参数

  • 使error参数可选

export class CallService{
    constructor(@Optional() private errror:string){

...

export class DownloadService extends CallService{
    constructor(@Optional() private error:string,private http:Http){
  • 或告诉DI它应该通过什么
bootstrap(AppComponent, [HTTP_PROVIDERS, {provide: 'someToken', useValue: 'someStringValue'}])
export class CallService{
    constructor(@Inject('someToken') private errror:string){

...

export class DownloadService extends CallService{
    constructor(@Inject('someToken') private error:string,private http:Http){

您也可以使用OpaqueToken代替字符串键('someToken')。
另请参见http://blog.thoughtram.io/angular/2016/05/23/opaque-tokens-in-angular-2.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用构造函数内的参数测试 angular2 类/服务?

来自分类Dev

使用 Castle Windsor 在服务类的构造函数中使用参数化构造函数初始化类

来自分类Dev

如何在angular2 NgModule中使用服务

来自分类Dev

在 Angular2 中使用 RabbitMQ RESTful 服务

来自分类Dev

在构造函数中使用Map参数

来自分类Dev

在构造函数中使用默认参数

来自分类Dev

在函数参数中使用`do`构造(宏)

来自分类Dev

在TypeScript中使用构造函数参数

来自分类Dev

Spring 集成 - 在服务激活器嵌套 bean 构造函数参数中使用 SpEL

来自分类Dev

Angular2 中使用 TypeScript 的嵌套函数

来自分类Dev

使用其他构造函数参数扩展kendoGrid

来自分类Dev

在构造函数中使用自己的样式扩展RadioButton

来自分类Dev

Symfony2 Forms-如何在表单构建器中使用参数化的构造函数

来自分类Dev

使用Lambda在Java流中使用参数调用构造函数

来自分类Dev

Angular2指令,构造函数与onInit

来自分类Dev

如何从angular2的setInterval访问构造函数属性

来自分类Dev

Angular2 RC BaseRequestOption构造函数注入

来自分类Dev

我在Angular2中需要构造函数体吗?

来自分类Dev

Angular2组件构造函数未调用

来自分类Dev

Angular2将属性传递给类构造函数

来自分类Dev

扩展Angular2 Http不会注入服务

来自分类Dev

在构造函数中使用“ this”

来自分类Dev

在 main.ts 中使用构造函数注入服务

来自分类Dev

如何在构造函数中使用参数自动接线?

来自分类Dev

在MVVM light SimpleIOC中使用参数调用构造函数

来自分类Dev

在Laravel 5命令中使用构造函数参数时,BindingResolutionException

来自分类Dev

如何在类构造函数参数中使用IEnumerable <T>

来自分类Dev

在MVVM light SimpleIOC中使用参数调用构造函数

来自分类Dev

Angular 服务在组件的函数中使用

Related 相关文章

  1. 1

    如何使用构造函数内的参数测试 angular2 类/服务?

  2. 2

    使用 Castle Windsor 在服务类的构造函数中使用参数化构造函数初始化类

  3. 3

    如何在angular2 NgModule中使用服务

  4. 4

    在 Angular2 中使用 RabbitMQ RESTful 服务

  5. 5

    在构造函数中使用Map参数

  6. 6

    在构造函数中使用默认参数

  7. 7

    在函数参数中使用`do`构造(宏)

  8. 8

    在TypeScript中使用构造函数参数

  9. 9

    Spring 集成 - 在服务激活器嵌套 bean 构造函数参数中使用 SpEL

  10. 10

    Angular2 中使用 TypeScript 的嵌套函数

  11. 11

    使用其他构造函数参数扩展kendoGrid

  12. 12

    在构造函数中使用自己的样式扩展RadioButton

  13. 13

    Symfony2 Forms-如何在表单构建器中使用参数化的构造函数

  14. 14

    使用Lambda在Java流中使用参数调用构造函数

  15. 15

    Angular2指令,构造函数与onInit

  16. 16

    如何从angular2的setInterval访问构造函数属性

  17. 17

    Angular2 RC BaseRequestOption构造函数注入

  18. 18

    我在Angular2中需要构造函数体吗?

  19. 19

    Angular2组件构造函数未调用

  20. 20

    Angular2将属性传递给类构造函数

  21. 21

    扩展Angular2 Http不会注入服务

  22. 22

    在构造函数中使用“ this”

  23. 23

    在 main.ts 中使用构造函数注入服务

  24. 24

    如何在构造函数中使用参数自动接线?

  25. 25

    在MVVM light SimpleIOC中使用参数调用构造函数

  26. 26

    在Laravel 5命令中使用构造函数参数时,BindingResolutionException

  27. 27

    如何在类构造函数参数中使用IEnumerable <T>

  28. 28

    在MVVM light SimpleIOC中使用参数调用构造函数

  29. 29

    Angular 服务在组件的函数中使用

热门标签

归档