如何关闭所有打开的durandaljs模态对话框

时间:2014-02-06 00:51:57

标签: modal-dialog durandal-2.0

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

我想要做的是在打开新模态之前关闭所有打开的模态。任何人都可以告诉我如何确保在durandaljs中任何时候只打开一个对话框?

2 个答案:

答案 0 :(得分:0)

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

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

我走得更远,现在我正在使用路线对象来开启模态。杜兰达很有趣。

答案 1 :(得分:0)

为什么不使用Durandal的pub / sub或客户端消息总线,例如postal.js(我们使用的是什么)?我们通过渠道'应用程序发送关闭消息来关闭所有模态。和主题' app / modals'。我们只是持有对消息通道(这是一个字符串)的引用,而不是持有对observable的引用(可能有内存含义)。更清洁的方式。