【问题标题】:Can a dijit dialog box be closed outside module it was created in可以在创建它的模块之外关闭 dijit 对话框吗
【发布时间】:2014-11-05 19:22:37
【问题描述】:

我有一个应用程序,其主页在用户单击 dijit 树上的节点时调用不同的工具。 dijit 树位于前导内容窗格中,当用户单击工具节点时,会在中心内容窗格中创建一个模块,该工具如下所示:

主页: 工具 标记票 找票

当用户点击 Mark Ticket 链接时,Mark Ticket 模块被创建,并且 在 Mark Ticket Module 中创建了另一个模块,它是一个非模态 dijit 对话框。

当用户点击 Find Ticket 链接时,Mark Ticket 模块被销毁并创建 Find Ticket 模块。 如果非模态对话框保持打开状态,当用户单击 Find Ticket 链接时,我是否可以将其关闭?

我一直在尝试通过对 MarkTicket 模块的引用来获取对主页上对话框的引用:

-- Mark Ticket 模块在链接创建时创建 DAMT = new MarkTicket({}, "tool");

DAMT.myDialog /对话框在 Mark Ticket 模块中创建,并在模块中使用 data-dojo-attach-point="myDialog"/

我还尝试使用以下方法引用主页上的对话框: this.myDialog

但这也不行

谢谢

【问题讨论】:

  • 我设法在 MarkTicket 小部件的 destroy 方法中隐藏了对话框:destroy: function () { MT.myDialog.hide();不幸的是,在此之后我无法重新创建任何模块

标签: javascript dojo


【解决方案1】:

尝试在模块的destroy 方法中使用对话框的destroy 方法(可能在调用hide 之后)。

不过,一些代码 sn-ps 可能会提供更好的答案。

【讨论】:

    【解决方案2】:

    我将对话框隐藏在 Mark Ticket 小部件的销毁功能中。我还需要在自定义方法中调用超类 destroy 方法(这就是重新创建模块时遇到的问题:

     destroy: function () {
                MT.myDialog.hide();//MT is the dialog widget
                this.inherited(arguments);
            },
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-21
      • 1970-01-01
      • 2011-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-27
      相关资源
      最近更新 更多