问题标签 [knockout-postbox]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
362 浏览

javascript - 组件之间的 Knockout Postbox 通信 - 如何确保订阅者处于活动状态

我有一个问题,我在一个组件中发布一个可观察的淘汰赛,并且有另一个具有订阅此邮箱事件的视图模型的组件。

发布事件在我的“数据表”组件视图模型中,如下所示:

然后我有一个订阅此邮箱发布的“寻呼机”组件。

上面的邮箱订阅是在视图模型构造函数中注册的。根据哪个组件首先激活,我有时会遇到一个问题,即 pagerParams 订阅在“数据表”组件视图模型中发布,但寻呼机不承认该事件已发布。

我发现这是因为“pager”组件需要在“data-table”组件之前变为活动状态,否则“pager”视图模型订阅仅在该代码行已被检查时检查任何传入的发布运行.. 很多时候,这是在数据表发布事件之后。

我的问题是,如何确保寻呼机组件在数据表组件之前激活,以便 pub-sub 事件系统在这种情况下按预期工作?

0 投票
2 回答
273 浏览

knockout.js - 自动处理 ko 邮箱订阅

我有一个由 2 个主要部分组成的单页应用程序:

有几次组件使用邮箱进行通信,问题是一旦组件本身被处理,内部创建的订阅就不是. 我知道我可以手动向每个组件添加一个 dispose 函数,然后在其中处理订阅,但是有没有办法以自动方式为所有组件执行此操作?

我确实知道如何循环所有属性并检查它们是否是订阅,但我需要一种方法以某种方式将此行为附加到所有组件,而无需手动将此 dispose 函数附加到所有组件。

我知道邮箱带有一个重置方法,我可以在我的路由库中调用,但我不想这样做,因为这样顶部栏也会失去它的订阅。

为了给你一些观点,这是主索引页面的样子:

这是我的自定义组件加载器:

0 投票
1 回答
76 浏览

knockout.js - 转换方法在淘汰赛 js 邮箱中不起作用

我正在使用淘汰赛邮箱插件来遵循淘汰赛中的 pub sub 模式。我能够在组件之间接收和发送数据,但问题是我无法使用转换功能。

下面是代码和小提琴链接..有人可以告诉我我在这里做错了什么

这是我的模型

这是小提琴链接小提琴

我在这里寻找的是使用转换函数通过订阅者可观察对象设置另一个可观察对象的值,以便我可以转换数据并分配它。

谢谢