我是 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?