2017-04-07 24 views
0

我在angular2 https://github.com/kekeh/mydatepicker中使用組件mydatepicker。 爲此設置全局選項的最佳做法是什麼?例如,如果您始終想要選項dateFormat ='dd/mm/yyyy',則可以使用此選項創建我自己的組件,然後使用<my-component>而不是<my-datepicker>將DatePicker放入我的模板中。 但我相信這是一個非常糟糕的方式來做到這一點。如何使用angular2設置組件的全局選項?

更多一般來說,我應該使用myDatePickerOptions設置爲'myview.ts'時將組件插入'myview.html'模板中。 但我想編輯my-date-picker的所有實例的全局選項,並保留編輯各個實例的選項的機會。

回答

0

創建您的組件並從父組件傳遞您的配置選項。設置一個picker.defaults.ts文件作爲默認值並從中導出一個const。所以你可以寫 @Input pickerConfig:any; 在ngOnInit中, this.pickerConfig = defaultConfig;

+0

感謝RemyaJ,可能我不明白,因爲我在ng2中是新手,但是我想避免的是爲定義全局設置創建我自己的組件。 – ugocasalone

+0

是的,那麼你不必爲此創建一個組件。創建一個通用配置文件,然後將其導入並在初始化選擇器的位置使用它 – RemyaJ

2

有兩種方法可以處理您的情況。

1)如果你不想改變你的配置值。

在這種情況下,您必須定義一個公共配置對象。

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

此導出的常量將通過您的組件,服務中的導入語句訪問。

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

2)如果你想改變配置的值從應用程序。

在這種情況下,您必須創建一個全局級服務,並在app.module.ts文件的提供程序部分注入該服務。當我們將全局服務定義到app.module.ts的提供者部分時,只有一個實例可用於整個應用程序。因此,您可以從該服務訪問任何數據/配置,或者您可以設置/修改現有配置。

我希望這對你有幫助。

相關問題