Dojox - mvc:如何获取模板中声明的小部件?

时间:2014-07-05 07:20:54

标签: dojo

在dojo 1.8版本中,我使用this._startupWidgets来获取在template.But中声明的小部件。在dojo 1.9版本中,我得到this._startupwidgets为null。所以我不知道如何在dojo 1.9版本中获取它?

1 个答案:

答案 0 :(得分:1)

如果您实际上正在寻找参考小部件中包含的小部件,请尝试:

var widget; // The widget you care about
require(["dijit/registry"], function(registry) {
    registry.findWidgets(widget.domNode);
});

应该注意私有变量/ API以_开头。因此,它们会在没有通知的情况下消失。考虑到这一点,您可以尝试查看widget._attachPoints,其中列出了模板中所有附加点的名称。这也将为您提供普通DOM节点的名称,而不仅仅是引用小部件的附加点的名称。一个简单的过滤器将为您提取小部件:

var widget; // The widget you care about
require(["dojo/_base/array"], function(array) {
    var templateWidgets = array.filter(widget._attachPoints, function(w) { 
        return !!widget[w].domNode;
    });
});