如何为angular2设置组件的全局选项?

时间:2017-04-07 14:24:07

标签: angular angular2-components

我在angular2 https://github.com/kekeh/mydatepicker中使用组件mydatepicker。 为此设置全局选项的最佳做法是什么? 例如,如果您总是想要选项dateFormat ='dd / mm / yyyy',我可以使用此选项创建自己的组件,然后使用<my-component>而不是<my-datepicker>将DatePicker放入我的模板中。 但我确信这是一个非常糟糕的方法。

一般情况下,当myDatePickerOptions设置为'myview.ts'时,我应该在'myview.html'模板中插入该组件。 但我想编辑my-date-picker的所有实例的全局选项,并保留编辑各个实例的选项的机会。

2 个答案:

答案 0 :(得分:2)

有两种方法可以处理您的方案。

1)如果您不想更改配置的值。

在这种情况下,您必须定义一个通用配置对象。

export const CommonConfig = {
    datepickerConfig: {
    dateFormat : 'dd-mm-yyyy',
    displayTime: true,
    ....
    },
    // here you can put your other configuration
}

此导出的常量可通过组件,服务中的import语句访问。

import { CommonConfig } from './<path where Common config is define>';

2)如果要从应用程序更改配置值。

在这种情况下,您必须创建一个全局级别的服务,并在app.module.ts文件的提供者部分中注入。当我们将全局服务定义到app.module.ts的提供者部分时,只有一个实例可用于整个应用程序。因此,您可以从此服务访问任何数据/配置,也可以设置/修改现有配置。

我希望这会对你有所帮助。

答案 1 :(得分:0)

创建组件并从父组件传递配置选项。将picker.defaults.ts文件设置为默认值并从中导出const。所以你可以写 @Input pickerConfig:any; 在ngOnInit中, this.pickerConfig = defaultConfig;