我有一个问题,我在一个组件中发布一个可观察的淘汰赛,并且有另一个具有订阅此邮箱事件的视图模型的组件。
发布事件在我的“数据表”组件视图模型中,如下所示:
this.pagerParams = ko.observable({ currentPage: this.currentPage, totalItems: this.recordsTotal, itemsPerPage: this.length }).publishOn("pagerParams");
然后我有一个订阅此邮箱发布的“寻呼机”组件。
ko.postbox.subscribe("pagerParams", (params: PagerParams) => {
this.assignParamValues(params, false);
this.numberOfPages(Math.ceil(this.totalItems() / this.itemsPerPage()) || 1);
this.pageNumbers(this.getPageNumbers());
});
上面的邮箱订阅是在视图模型构造函数中注册的。根据哪个组件首先激活,我有时会遇到一个问题,即 pagerParams 订阅在“数据表”组件视图模型中发布,但寻呼机不承认该事件已发布。
我发现这是因为“pager”组件需要在“data-table”组件之前变为活动状态,否则“pager”视图模型订阅仅在该代码行已被检查时检查任何传入的发布运行.. 很多时候,这是在数据表发布事件之后。
我的问题是,如何确保寻呼机组件在数据表组件之前激活,以便 pub-sub 事件系统在这种情况下按预期工作?