Вы могли бы перенаправить сервис Angular на с состоянием .Сохраняйте / кэшируйте все, что хотите, там;сливайте обновления как хотите.Совместное использование одного или нескольких экземпляров в приложении для координации состояния.Я использовал этот подход в успешных приложениях Angular.
В конкретном, но гибком примере вы могли бы имитировать (не Redux) подход React .Сохраняйте данные в виде JSON-подобного объекта, называемого «state», и отправляйте «setState» запросы на объединение изменений, возможно, используя преимущества оператора распространения.
@Injectable()
export class StateService {
private state = {};
constructor() {}
public setState(changes: any): void {
this.state = {
...this.state,
...changes,
};
}
public getState(): any {
return _.cloneDeep(this.state); // or Object.assign, or raw this.state
}
}
Затем используйте это в любом месте вашего приложения.Если хотите, добавьте прослушиватели изменений.
Приложив немного больше усилий, вы могли бы реализовать интерфейс, который вы описали в вопросе, возможно, используя операции на основе пути lodash.Может быть, даже поделиться результатом в виде проекта с открытым исходным кодом.Такая вещь вполне может существовать;Я не уверен.