0

目前我正在研究一个严重依赖模式对话框的项目。我正在使用 durandal 的对话框插件。我遇到的问题是,在模式中,用户可以单击一个元素,该元素在另一个模式中显示其详细信息。

我想做的是在打开新模式之前关闭所有打开的模式。谁能告诉我如何确保在 durandaljs 中的任何给定时间只打开一个对话框?

4

2 回答 2

0

好的,所以我面临的问题是我有各种模态,其中一个模态可以从另一个模态中打开。但是,我希望模态框在另一个打开时关闭。棘手的部分是我正在使用小部件和单击事件来打开模式。

由于我的项目是一个 SPA,我想到简单地在我的全局对象上创建一个 ko.observable - currentModal - 每个新的 Modal 关闭前一个,然后用 currentModal(this); 中的新 Modal 替换旧的。

我走得更远,现在我也使用路由对象来打开 Modals。杜兰达尔很有趣。

于 2014-04-24T19:07:26.130 回答
0

为什么不使用 Durandal 的 pub/sub,或者诸如 postal.js 之类的客户端消息总线(这是我们使用的)?我们通过通道“app”和主题“app/modals”发送关闭消息来关闭所有模式。我们不持有对可观察对象的引用(这可能会影响内存),而是持有对消息通道的引用(这是一个字符串)。要走的路要干净得多。

于 2014-04-27T01:50:07.400 回答