Sto creando un progetto in cui ho bisogno di una classe "costanti" per contenere alcuni valori di configurazione. Ecco un estratto di questa classe:Iniezione rispetto alla classe statica globale con Angular 2
export class Constants
{
static Configuration = class
{
static CookieName:string = 'etl_language';
};
...
static View = class
{
static Militaries:string = 'militaries';
static Mutants:string = 'mutants';
static Objects:string = 'objects';
static Scientists:string = 'scientists';
};
}
Quando sono in un componente con angolare 2, posso usare quella classe importandolo:
import {Constants} from "../../misc/constants";
E poi, basta fare riferimento a esso:
this.cookieName = Constants.Configuration.CookieName;
funziona abbastanza bene, ma ho la sensazione che avrei dovuto utilizzare il motore di iniezione di dipendenza di angolare 2 per iniettare un riferimento a quella classe nel costruttore, ma sembra un po 'eccessivo. Tuttavia, ho la sensazione di violare il "modo angolare" di fare le cose, quindi non so se posso restare con la mia soluzione o se devo usare DI.
Qualche consiglio?
Con DI è possibile eliminare tutte le risorse 'static' e iniettare la stessa istanza di oggetto (un singleton) ovunque. –