组件之间的角度打字稿共享属性

时间:2019-04-02 22:03:24

标签: angular typescript

我正在寻找某种类型的配置文件,可以用来存储多个组件中所需的属性。让我举个例子:

number-one-component.ts

export class NumberOneComponent {
    view: any[];
    xAxis: number;
    yAxis: number;
    label: string;
    labelPosition: string;

    chartSize: number;
}

number-two.component.ts

export class NumberTwoComponent {
    view: any[];
    xAxis: number;
    yAxis: number;
    label: string;
    labelPosition: string;

    chartSize: number;
}

我试图创建一个文件,将其导入其中一个文件中,然后在构造函数中执行Object.assign(this,tokenName)。唯一的问题是TS抱怨这些属性不是组件的一部分。

我尝试过:

chart-config.ts

export const ChartConfig = {
    view: any[];
    xAxis: number;
    yAxis: number;
    label: string;
    labelPosition: string;

    chartSize: number;
}

那没有用。在这两个文件的构造函数中,我都做了:

constructor() {
  Object.assign(this, ChartConfig);
}

没有运气。

对于能做到这一点的见解,我将不胜感激,这样我就可以在需要这些属性的组件之间共享一个配置文件。

1 个答案:

答案 0 :(得分:1)

您可以做

export class NumberOneComponent {
    chartConfig = ChartConfig;
}

export class NumberTwoComponent {
    chartConfig = ChartConfig;
}

然后,这两个组件共享相同的配置对象。

在您要绑定的模板中,例如:

{{chartConfig.label}}

代替

{{label}}