2016-06-07 16 views
5

Jaki jest zatwierdzony sposób eksternalizacji stałej ciągu w aplikacji Angular 2 lub ogólnie w aplikacji JavaScript? Mam na myśli coś w rodzaju pliku .properties w Javie, gdzie przechowywane są atrybuty połączenia z backendem.Zewnętrzność kątowa 2 (plik właściwości)

O ile mi wiadomo, JavaScript nie obsługuje łatwego czytania z pliku na końcu klienta. Moje obecne rozwiązanie polega na użyciu wstrzykiwalnej klasy usług, która przechowuje pary klucz-wartość jako atrybuty obiektu. Wtedy właśnie wprowadzam usługę do innych usług, które wymagają tych wartości. Czy jest to uzasadniona metoda, czy JavaScript/A2 zapewnia bardziej jednolity sposób obsługi iniekcji wartości?

+1

Jest coś work-in-progress być wydany "wkrótce" przez kątowe zespołu. –

Odpowiedz

0

Myślę, że droga do zrobienia jest właściwa.

Moglibyście uruchomić się asynchronicznie po ukończeniu (ych) żądań. Oto przykład:

var app = platform(BROWSER_PROVIDERS) 
    .application([BROWSER_APP_PROVIDERS, appProviders]); 

var service = app.injector.get(ConfigService); 

service.getConfig().flatMap((config) => { 
    var configProvider = new Provider('config', { useValue: config }); 
    return app.bootstrap(appComponentType, [ companiesProvider ]); 
}).toPromise(); 

Zobacz na to pytanie:

widzę innego podejścia, jeśli jesteś w stanie zaktualizować index.html stronę (główny punkt odbioru) na po stronie serwera. Oto przykład:

<script> 
    var params = {"token": "@User.Token", "xxx": "@User.Yyy"}; 
    System.import('app/main').then((module) => { 
    module.main(params); 
    }); 
</script> 

Zobacz na to pytanie:

Można również zarejestrować dostawcy APP_INITIALIZER na to:

provide(APP_INITIALIZER, { 
    useFactory: (service:ConfigService) =>() => service.loadConfig(), 
    deps:[ConfigService, HTTP_PROVIDERS], 
    multi: true}), 

zobaczyć ten problem dla więcej szczegółów:

+1

Tyle gadatliwości do realizacji najprostszych zadań. Kątowy kod 2 wydaje się być ostatecznie trudny do utrzymania, mam nadzieję, że z czasem dostosuje konwencję do konfiguracji. –

+0

Tak, być może będzie to łatwiejsze w przyszłości dzięki narzędziom takim jak stałe ng, które będą zajmować się pakowaniem ... –

Powiązane problemy