组件是否应该编辑来自 Angular 服务的对象副本?
Should a component edit a copy of object from Angular service?
我正在尝试制作一个基本的交易跟踪应用程序并提供跟踪交易的服务。我有一个保存事务的 BehaviorSubject,当一个组件请求事务时,它们会得到一个 behaviorsubject 的可观察对象。
我现在正在努力做到这一点,以便组件可以编辑事务并让服务在发生编辑时将更改同步回服务器。解决这个问题的最佳方法是什么?我是否以某种方式锁定了 behaviorsubject 持有的值并要求编辑通过 setter 传递?我是否只将事务的副本传递给组件?如果没有 'telling' 服务,我是否相信组件不会进行编辑?
我现在做的是让组件能够编辑交易,并且服务每 10 秒检查一次以查看交易列表是否与原始同步版本不同,然后将差异发送到服务器。这好像不太对。
我建议您使用 ngrx 这样的状态管理工具。使用商店和效果。它将使您能够了解您的状态如何变化以及何时可以通过效果进行服务调用。
另请查看这篇文章 for state management in angular. You could also do some findings on google。
您会遇到 ngrx (redux + rxjs) 和 redux 作为 angular 中最常用的状态管理工具。
我真的不认为人们应该在这些话题出现时直接跳到 Redux
。
无论您想实现什么,您仍然可以在当前服务中实现它。您应该做的是仅通过您的服务锁定编辑。并让您的组件监听您的服务发布的 BehaviorSubject
。
您不能直接在组件中更改记录,因为您获得的副本应该是只读副本。这本质上就是 Redux
想要你做的,区别在于 Redux
不需要你有一个额外的服务层。
看看我已经开始研究的名为 RxCache 的库。我写这篇文章是为了回应我对当前感染我们美丽 Angular 世界的 Redux 商店风格方法的厌恶。它为您提供了推送数据的方法,没有任何 ngrx 的荒谬样板和开销。
我正在尝试制作一个基本的交易跟踪应用程序并提供跟踪交易的服务。我有一个保存事务的 BehaviorSubject,当一个组件请求事务时,它们会得到一个 behaviorsubject 的可观察对象。
我现在正在努力做到这一点,以便组件可以编辑事务并让服务在发生编辑时将更改同步回服务器。解决这个问题的最佳方法是什么?我是否以某种方式锁定了 behaviorsubject 持有的值并要求编辑通过 setter 传递?我是否只将事务的副本传递给组件?如果没有 'telling' 服务,我是否相信组件不会进行编辑?
我现在做的是让组件能够编辑交易,并且服务每 10 秒检查一次以查看交易列表是否与原始同步版本不同,然后将差异发送到服务器。这好像不太对。
我建议您使用 ngrx 这样的状态管理工具。使用商店和效果。它将使您能够了解您的状态如何变化以及何时可以通过效果进行服务调用。
另请查看这篇文章 for state management in angular. You could also do some findings on google。
您会遇到 ngrx (redux + rxjs) 和 redux 作为 angular 中最常用的状态管理工具。
我真的不认为人们应该在这些话题出现时直接跳到 Redux
。
无论您想实现什么,您仍然可以在当前服务中实现它。您应该做的是仅通过您的服务锁定编辑。并让您的组件监听您的服务发布的 BehaviorSubject
。
您不能直接在组件中更改记录,因为您获得的副本应该是只读副本。这本质上就是 Redux
想要你做的,区别在于 Redux
不需要你有一个额外的服务层。
看看我已经开始研究的名为 RxCache 的库。我写这篇文章是为了回应我对当前感染我们美丽 Angular 世界的 Redux 商店风格方法的厌恶。它为您提供了推送数据的方法,没有任何 ngrx 的荒谬样板和开销。