我应该导入另一个类构造函数中注入的类吗?

时间:2019-06-17 07:42:51

标签: angular dependency-injection

我必须创建一个实例的默认/空白案例(用于估算),该实例使用另一个类(客户端),而该类本身使用另一个类(地址)。我想知道是否应该同时导入地址和客户,或者是否可以改进我的代码。

我的问题是,如果我想做一个空白的估算,我最终会得到

import {Client} from '../../models/client.model';
import {Adress} from '../../models/adress.model';
// other things
this.estimate = new Estimate('', new Client('', new Adress('', '', '', ''), '', '', '', '', ''), '', '', '', '');

,我必须同时导入“客户”和“地址”。我认为依赖注入足以仅导入客户端。我的客户构造函数如下所示:

import {Adress} from './adress.model';
export class Client {
constructor(
    public adress: Adress,
    // other properties
  ) {
  }

我希望Adress包含在第一个代码块的导入的Client中。有什么适当的方法吗?

2 个答案:

答案 0 :(得分:1)

export classe Estimate {
  constructor(
    public estimate: string,
    public client = new Client(''),
  ) {}
}

export class Client {
  constructor(
    public name: string,
    public address = new Address('')
  ) {}
}

export class Address {
  constructor(
    public name: string,
    public street = '',
    public city = '',
  ) {}
}

现在,您只需要打电话

estimate = new Estimate('');

如果您对语法或语法有疑问,请随时询问。

答案 1 :(得分:1)

您可以使用以下模型:

export class AdressModel {
    public city: string;
    public street: string;
    public flat: string;
    public zip: string;

    constructor(obj?: Partial<AdressModel>) {
        this.city = obj && obj.city || '';
        this.street = obj && obj.street || '';
        this.flat = obj && obj.flat || '';
        this.zip = obj && obj.zip || '';
    }
}
相关问题