繁体   English   中英

一类的Angular 6依赖注入

[英]Angular 6 Dependency Injection in a Class

我有一个关于Angular 6依赖注入的知识问题。

场景如下:

单个类(用作模型):

import { NgModule } from '@angular/core';
import { ContactProviderService } from './../services/contact-provider.service';
import { SuiviInterface } from './../interfaces/suiviinterface';
import { WebapiService } from './../services/webapi.service';
import { QuotationInterface } from './../interfaces/quotationinterface';

import { DeserializableInterface } from './../interfaces/deserializableinterface';

import { MomentDate } from './momentdate';
import { User } from './user';
import { Feature } from './feature';
import { Suivi } from './suivi';

@NgModule({
  providers: [
    WebapiService,
    ContactProviderService
  ]
})

export class Quotation implements QuotationInterface, DeserializableInterface<Quotation> {
  public id: number;

  public date: MomentDate;

  public user: User;

  public feature: Feature;

  public dateValidation?: MomentDate;

 public dateProposition?: MomentDate;

 public dateAcceptation?: MomentDate;

 public isArchive: Boolean;

 public isDeleted: Boolean;

 public numParcelle: string;

 public commentaire: string;

 public lead?: string;

 public suivi: Array<Suivi>;

 public propositionDone: boolean = false;

 private nbAttributions: number = 0;
 private nbPropositions: number = 0;

 public constructor(
    private webApi: WebapiService,
    private contactProvider: ContactProviderService) {
    this.dateValidation = null;
  }

 ... some getters / setters

public deserialize(input: any): Quotation {

    Object.assign(this, input);

    // some other stuff

   return this;
 }
 }
 }

在此类中,WebapiService和ContactProviderService都是Injectable的,因此,我想将它们注入到类的容器中是足够的。

我添加了@NgModule尝试...但是创建报价实例时,出现以下错误:

Expected 2 arguments but got 0

我做错了什么?

谢谢,

让·吕克

我认为这是因为您缺少@Component Decorator,然后在其中可以提供服务(如果它们是该组件所独有的)。 (如果在组件中声明,则不会与整个应用共享)

@Component({
   selector: 'some-selector',
   templateUrl: ['./'],
   stylesUrl: ['./'],
   providers:[ WebapiService, ContactProviderService ]
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM