Флаги функций в приложении 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 функция.

Другие вопросы по тегам