通过离子中的所有页面同步对象的最佳方式?
Best way of synchronizing objects trough all pages in ionic?
我有 posts 显示在我的应用程序的主页上,我从服务器检索它们作为 JSON 对象。我有一个 post class 并为我得到的每个 post 创建一个实例。我将这些实例放入一个数组中,并在主页中循环遍历它们。但是当用户在不同的页面更新或添加 post 时,问题就开始了。
我想在用户返回主页时显示 post 的更新版本或新的 post。到目前为止,我是通过事件订阅来完成的,但是当您有太多要更新的内容并且更新可能发生在超过 1 个页面时,它真的开始变得复杂起来。
此外,订阅代码需要在任何事件发生之前运行,我需要将订阅代码放入相关页面,以便在事件发生时更改视图。但是,当用户没有访问我订阅事件的页面但做了一些更改以便发布事件时,情况又如何呢?事件的回调函数不起作用,因为我什至无法订阅它。
那么,在ionic v3中,有没有更好的同步所有必要页面数据的方法?
如果你正在寻找简单的东西,我建议只写 statefull service
@injectable()
export class StateService {
public stateChange$ = new Subject();
private state: any = {};
public setState(state: any) {
this.state = state;
this.stateChange.next(state);
}
}
然后在组件中获取状态并订阅它的任何更改:
class ComponentX {
constructor(private state: StateService) {
this.state = state.state;
this.state.state.subscribe(newState => {
this.state = newState;
}
}
}
它的可扩展性不是很好,但速度很快,而且您无需下载任何新库。
我有 posts 显示在我的应用程序的主页上,我从服务器检索它们作为 JSON 对象。我有一个 post class 并为我得到的每个 post 创建一个实例。我将这些实例放入一个数组中,并在主页中循环遍历它们。但是当用户在不同的页面更新或添加 post 时,问题就开始了。
我想在用户返回主页时显示 post 的更新版本或新的 post。到目前为止,我是通过事件订阅来完成的,但是当您有太多要更新的内容并且更新可能发生在超过 1 个页面时,它真的开始变得复杂起来。
此外,订阅代码需要在任何事件发生之前运行,我需要将订阅代码放入相关页面,以便在事件发生时更改视图。但是,当用户没有访问我订阅事件的页面但做了一些更改以便发布事件时,情况又如何呢?事件的回调函数不起作用,因为我什至无法订阅它。
那么,在ionic v3中,有没有更好的同步所有必要页面数据的方法?
如果你正在寻找简单的东西,我建议只写 statefull service
@injectable()
export class StateService {
public stateChange$ = new Subject();
private state: any = {};
public setState(state: any) {
this.state = state;
this.stateChange.next(state);
}
}
然后在组件中获取状态并订阅它的任何更改:
class ComponentX {
constructor(private state: StateService) {
this.state = state.state;
this.state.state.subscribe(newState => {
this.state = newState;
}
}
}
它的可扩展性不是很好,但速度很快,而且您无需下载任何新库。