角度2应用程序中的功能标志,如何与所有组件共享对象

时间:2016-03-10 10:32:19

标签: angular featuretoggle

我正在尝试在我的angular2应用程序中实现功能标志,因此我可以发布尚未准备好生产的功能。现在我有两个市场,英国和德国市场。我想在这些市场上分别控制功能。

我对如何使用这些标志的想法:

  • 根据特定市场切换开/关功能。
  • 基于市场的A-B测试功能。
  • 在不同的组件上测试新的样式(比如英国市场在一种给定的方法中看到某个列表,德国市场对它的看法不同,也像A-B测试一样)。
  • 允许特定用户测试特定功能(管理员,普通消费者和其他人员)。

为了启用其中一些功能,我尝试在Angular2应用程序中创建两个Json文件。

示例:

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

现在我想与应用程序中的所有其他组件共享此对象。服务是最好的方法吗?或者你可以使用你在angularJS中做过的$ scope吗?

1 个答案:

答案 0 :(得分:1)

截至目前sharedService似乎是您最佳选择。其他方法告诉您父/子,兄弟/兄弟组件之间的通信。因此,最好的方法是使用bootstrap并在var data = (from a in context.Actions join t in context.Tasks on a.TaskID equals t.TaskID join nextT in context.Tasks where nextT.TaskID != a.TaskID 函数中初始化它。