2017-05-19 90 views
0

我已经设计使用mithriljs(0.2.5)的组件和观察者模式对组件间的通信的应用程序。不过,我确实需要阻止基于另一个组件的操作。Mithriljs间组分通信 - 阻断

说,我有2个组件ITEMLIST & ItemDetail。当在列表组件中选择一个项目时,触发一个ITEM_SELECTED事件,导致细节被加载。细节组件允许编辑和保存用户详细信息。

如果细节是脏(编辑未保存)和用户试图做一个选择,我想说明一个保存项目屏幕是/否/取消选项。根据选择的选项加载新的细节或取消并返回到先前的选择。

选择组件没有细节肮脏的知识,细节部分将呈现保存确认。

如果选择取消,Detail组件会触发REVERT_SELECTION消息的一个选项,理想模式是阻止Item选择完成,直到Detail组件提供go/no go响应,似乎我需要除observer之外的其他选项阻塞。

感谢

+0

只是出于好奇,你有没有考虑迁移到秘银1.x的了吗?现在已经有5个月的时间了,所以这件事你可能会很快考虑。 –

+0

@Isiah Meadows,简而言之,我们在Mithril 0.1x的基础上启动了这个项目,2014年年中,这个项目非常复杂和庞大。 Mitriljs一直很棒(谢谢!),特别是管理/渲染性能。我们使用了很多Mithriljs 0.x模式,并且像m.prop,m.sync一样。 m.start/endComputation(项目基于websockets)。我们有3个方库(jQuery,jQueryUI,Gridstack,C3js ..),因此大量使用vdom.config。从1.0 api来看,迁移并不是直截了当的,对于获得v1.x的全部好处将是一个重要的重构。这让我们失望 – chifer

回答

0

我想最好的解决办法是使用一个模式对话框,这将阻止所有的GUI unti选择上是/否/取消完成。

林秘0.2.5你VARIOS approact可供情态动词。

Please take a look to this samples