Angular2:数据层的最佳实践

时间:2016-12-15 09:48:58

标签: angular typescript angular2-routing angular2-services data-layers

我是Angular2的新手,正在边做边学。现在,我已成功构建了一个包含父组件,多个子组件和数据库服务的多视图。现在我将要使用各自的父子组件来实现其他视图。

应用程序应该使用可以在其他组件中添加/更新/删除的相同数据集,因此我正在寻找一个单独的数据层,可以由应用程序的所有组件直接查询。更多 - 我需要相同的服务实例,以便中间数据随处可用,以及避免不必要的数据库访问。在Angular2中定义和使用这样一个类的最佳方法是什么?

更新问: 那么现在,当我可以直接访问整个应用程序中数据层的同一实例的变量时,处理组件中变量的最佳方法是什么?

a)我应该使用本地组件变量,它们是相同数据层变量的副本(因此显式地加载,获取和设置它们),例如

this.locations = this.datalayer.locations;
this.selectedLocation;

updateLocation(id) {
  this.selectedLocation = id;
  this.datalayer.setSelectedLocation(id);
}

getSelectedLocation() {
   return this.selectedLocation;
}

b)我应该专门处理数据层变量,迭代它们,从组件中获取和设置它们吗?

updateLocation(id) {
   this.datalayer.selectedLocation = id;
}

getSelectedLocation() {
   return this.datalayer.selectedLocation;
}

或者可能有一个选项c?

1 个答案:

答案 0 :(得分:7)

我认为您需要一种服务,该服务可用于与数据交互的所有组件。

您还需要一个单身的服务。

解决方案是创建服务并在应用级别提供服务。

查看更多:

How can I create a singleton service in Angular 2?