【问题标题】:dojo/subscribe does not work if the document is not ready如果文档没有准备好,dojo/subscribe 不起作用
【发布时间】:2014-03-07 02:40:56
【问题描述】:

我有一个小要求。我们有一个应用程序控制器和一个自定义 dijit,它们可以一起工作。

我想从 dijit 发布一个事件并在控制器中订阅它。但是问题是第一次触发发布事件时控制器没有加载,所以第一次订阅没有工作。

一旦控制器被加载,如果我们再次发布,那么订阅就可以正常工作了。

这个问题有解决办法吗?

【问题讨论】:

  • 这听起来很生硬,但解决方案是确保您在主题发布之前订阅。听起来这需要在您的应用程序中进行一些重组。如果没有具体细节,这个问题太宽泛,无法以可能特别有帮助的方式回答。

标签: javascript dojo


【解决方案1】:

您是否尝试过 dojo/ready 以确保所有必要的部件都已加载?检查您的加载层次结构。是否可以在开始时将控制器加载到 init 阶段?

注意

【讨论】:

    【解决方案2】:

    感谢您的回答 Dimitri 和 Ken Franqueiro 以及 MiBrock。 Dimitri 的解决方案听起来对我有用。发布事件的控制器和小部件不在同一页面上,控制器并不总是加载,而小部件是我的菜单的一部分,因此它出现在每个页面上。

    我尝试的是使用内存来传递数据,并第一次调用将使用事件和数据的函数。所以我的小部件在内存存储和控制器中设置数据,一旦加载,我们检索值并使用它。所以这只是第一次发生,从第二次开始,我发布的调用在页面上加载控制器时工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多