基本Dojo 1.8:如何获取对方法的引用



我是Dojo 1.8的新手,想知道如何从外部要求使用的方法调用功能?我尝试实现一个消息框,以逐渐淡出。

我创建了方法:

require(["dojo/dom", "dojo/on", "dojo/domReady!" ], function(dom, on, ready) {
    /*function which shows a msg-box on top of the page */
    var showMsg = function(text) {
        dom.byId("msgbox").innerHTML = text;
    }     
});

好!它有效...。但是我不想从我的应用程序中的其他地方称呼它:

showMsg("Item saved");

但这不起作用:未介绍的参考文献:Showmsg未定义

我如何获得该参考?

谢谢您的帮助!

afx

当事物看来,您要声明一个本地变量,因此在程序中其他位置不可见。

您可以制作变量全局,例如

window.showMsg = function(text) {
    dom.byId("msgbox").innerHTML = text;
}     

这种方法的缺点是,随着应用程序的越大,您最终会越来越多的全球变量,这使维护更加困难。

因此,Dojo提供了包装大量可重复使用的代码并参考它们的方法。当您使用"需要"时,您已经在利用其中的一些功能 - 您可以访问Dojo的块。您可以以相同的方式将自己的代码视为可重复使用的块。

这是一个很大的话题,但是您可以首先阅读此

您可以做的另一件事是将需求移入功能中。

即使您有许多这样的功能,虽然要重复出现很烦人,但基本上没有需要一遍又一遍地罚款。唯一要注意的是该函数内部的代码变得异步,因此,您不必返回一个值,而必须使用回调或承诺。

另外,如果您仅在某些事件处理程序中使用此功能(我看到dojo/on),则可以将它们设置在同一需要块的范围内。

最新更新