2017-04-07 2 views
0

Ich verwende die Komponente mydatepicker in angular2 https://github.com/kekeh/mydatepicker. Was ist die beste Vorgehensweise, um eine globale Option dafür festzulegen? Zum Beispiel, wenn Sie immer die Option dateFormat = 'TT/MM/JJJJ' möchten, könnte ich meine eigene Komponente mit dieser Option erstellen und dann den DatePicker in meine Vorlage mit <my-component> statt <my-datepicker> einfügen. Aber ich bin mir sicher, dass es ein sehr schlechter Weg ist, das zu tun.Wie setze ich globale Optionen für Komponenten mit angular2?

Allgemein sollte ich die Komponente in die 'myview.html' Vorlage einfügen, wenn myDatePickerOptions in 'myview.ts' gesetzt ist. Aber ich möchte die globalen Optionen für alle Instanzen von Meine-Datum-Picker bearbeiten und die Möglichkeit behalten, die Optionen für einzelne Instanzen zu bearbeiten.

Antwort

0

Erstellen Sie Ihre Komponente und übergeben Sie Ihre Konfigurationsoptionen aus der übergeordneten Komponente. Setze eine picker.defaults.ts Datei für die Standardeinstellungen und exportiere eine const daraus. So können Sie schreiben @Input PickerConfig: any; In ngOnInit, this.pickerConfig = defaultConfig;

+0

Dank RemyaJ, wahrscheinlich verstehe ich nicht, weil ich neu in ng2 bin, aber was ich vermeiden möchte, ist meine eigene Komponente nur für globale Einstellungen zu definieren. – ugocasalone

+0

Ja, dann müssen Sie keine Komponente dafür erstellen. Erstellen Sie eine allgemeine Konfigurationsdatei, importieren Sie diese und verwenden Sie sie dort, wo Sie Ihre Auswahl initialisiert haben – RemyaJ

2

Es gibt zwei Möglichkeiten, Ihr Szenario zu behandeln.

1) Wenn Sie den Wert Ihrer Konfiguration nicht ändern möchten.

In diesem Fall müssen Sie das eine gemeinsame Konfigurationsobjekt definieren.

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

Diese exportierte Konstante wird über Import-Anweisung in Ihrer Komponente, Service zugänglich sein.

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

2) Wenn Sie den Wert Ihrer Konfiguration von der Anwendung ändern möchten.

In diesem Fall müssen Sie einen globalen Service erstellen, der in den Provider-Abschnitt der app.module.ts-Datei injiziert wird. Wenn wir globalen Service in den Provider-Bereich von app.module.ts definieren, gibt es nur eine Instanz für die gesamte Anwendung. Sie können also von diesem Dienst auf alle Daten/Konfigurationen zugreifen oder die vorhandene Konfiguration festlegen/ändern.

Ich hoffe, dies wird Ihnen hilfreich sein.

Verwandte Themen