【问题标题】:Dojo on widget load event小部件加载事件上的 Dojo
【发布时间】:2011-11-06 23:45:24
【问题描述】:

我想知道 Dojo 表单小部件何时解析或准备好,以便我可以动态自定义它。我试图通过使用dojo.connect() 方法来实现这一点。但是,我不确定要听什么事件。是onLoad 还是onStartup 还是..?

这是我所做的,但没有触发:

dojo.connect(dijit.byId('myWidget'), 'onStartup', function(evt) {
   console.debug("test");
}

请注意,dijit.byId('myWidget') 部分会正确返回对象,因此这不是问题。

【问题讨论】:

    标签: javascript dojo dom-events


    【解决方案1】:

    好吧,如果你用 dojo.addOnLoad() 函数调用包装该代码,你应该会很好。

    http://dojotoolkit.org/reference-guide/dojo/addOnLoad.html

    【讨论】:

    • 小部件被动态解析并通过 AJAX 调用加载。您所支持的内容仅在页面加载时有效,但在加载之后无效。
    【解决方案2】:

    这在一定程度上取决于您尝试自定义的具体内容(请参阅小部件生命周期 here),但我猜想连接到 postCreate 将满足您的要求

    【讨论】:

      【解决方案3】:

      回答我自己的问题,小部件生命周期中有一个“启动”功能,所以我可以使用它而不是像这样的“onStartup”:

      dojo.connect(dijit.byId('myWidget'), 'startup', function(evt) {
         console.debug("test");
      }
      

      【讨论】:

        【解决方案4】:

        就我而言,我需要等待外部模板。我是这样设计的:

        var myCp= registry.byId("myContentPane");
        myCp.set("onDownloadEnd", function(){
            console.log("Download complete!");
        });
        myCp.set("href", "myHtml.html");
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-07-27
          • 1970-01-01
          相关资源
          最近更新 更多