2016-06-07 3 views
5

Каков одобренный способ экстернализации строковой константы в приложении Angular 2 или в приложении JavaScript вообще? Я имею в виду что-то вроде файла .properties на Java, где хранятся атрибуты подключения к серверу.Угловая 2 экстернализация (файл свойств)

Насколько я знаю, JavaScript не поддерживает чтение из файла на стороне клиента легко. Моим текущим решением является использование класса инъективных сервисов, который хранит пары ключ-значение в качестве атрибутов объекта. Затем я просто внедряю эту услугу в другие службы, которые нуждаются в этих значениях. Является ли это оправданным методом, или JavaScript/A2 предоставляет более унифицированный способ обработки инъекций значений?

+1

Существует что-то работа в прогрессе будет выпущена «в ближайшее время» от угловой команды. –

ответ

0

Я думаю, что способ сделать правильный.

Вы можете загрузить асинхронно после завершения запроса (ов). Вот пример:

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(); 

Смотрите этот вопрос:

Я вижу другой подход, если вы в состоянии обновить index.html страницы (главная точка входа) на сервер. Вот пример:

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

Смотрите этот вопрос:

Вы также можете зарегистрировать APP_INITIALIZER поставщика для этого:

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

Посмотреть этот вопрос для более подробная информация:

+1

Столько многословий для реализации простейших задач. Угловой код 2, по-видимому, в конечном итоге трудно поддерживать, я надеюсь, что они адаптируют соглашение по сравнению с настройками с течением времени. –

+0

Да, возможно, в будущем это будет проще с помощью таких инструментов, как ng-константы, которые будут заниматься упаковкой ... –

Смежные вопросы