Флаги функций в приложении angular 2, как поделиться объектом со всеми компонентами
Я пытаюсь реализовать флаги функций в своем приложении angular2, чтобы иметь возможность выпускать функции, которые не совсем готовы для производства. Прямо сейчас у меня есть два рынка, английский и немецкий. Я хочу контролировать функции отдельно на этих рынках.
Моя идея о том, как использовать эти флаги:
- Чтобы включить / выключить функции на основе данного рынка.
- Особенности тестирования AB, основанные на рынках.
- Тестирование новых стилей на разных компонентах (например, английский рынок видит определенный список в одном заданном подходе, когда немецкий рынок видит его по-другому, также как тестирование AB).
- Разрешить конкретным пользователям тестировать определенные функции (администратор, обычный пользователь и т. Д.).
Чтобы включить это, я попытался создать два файла Json в своем приложении Angular2.
Пример:
{
"PassengersFeature": {
"displayed": true
},
"VehicleFeature": {
"displayed": false
},
"DateFeature": {
"displayed": false
}
}
Прямо сейчас я добавил только одно значение = "отображается", чтобы проверить вещи.
Основываясь на данном рынке "EN" или "DE", я загружаю правильный файл json и помещаю его в созданный мной объект объектов.
// When locale is set, load feature flags files.
this.features = this.appService.getFeaturesForLocale();
Теперь я хочу поделиться этим объектом со всеми другими компонентами в приложении. Является ли услуга лучшим подходом для этого? или вы можете использовать что-то вроде $scope, что вы сделали в angularJS?
1 ответ
По состоянию на сейчас sharedService
кажется лучшим вариантом для вас сценарий. Другие подходы говорят вам о связи между родителем / ребенком, братьями и сестрами. Так что лучше всего использовать sharedService
и инициализировал его в bootstrap
функция.