Tworzę projekt, w którym potrzebuję klasy "constants", aby zawierać pewne wartości konfiguracyjne. Oto fragment tej klasy:Injection versus globalna klasa statyczna z 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';
};
}
Kiedy jestem w składniku z Kątowymi 2, można używać tej klasy importując go:
import {Constants} from "../../misc/constants";
, a potem po prostu odwołać go:
this.cookieName = Constants.Configuration.CookieName;
działa całkiem dobrze, ale mam wrażenie, że powinienem użyć silnika wtrysku zależność kątowa 2 wstrzyknąć odniesienie do tej klasy w konstruktorze, ale wydaje się nieco overkill. Mam jednak wrażenie, że naruszam "Angularny sposób" robienia rzeczy, więc nie wiem, czy mogę trzymać się mojego rozwiązania, czy też muszę korzystać z DI.
Każda rada?
Dzięki DI możesz pozbyć się wszystkich rzeczy 'statycznych' i wstrzyknąć wszędzie tę samą instancję obiektu (singleton). –